C++ 基礎(chǔ)教程

C++ 流程控制

C++ 函數(shù)

C++ 數(shù)組 & 字符串

C++ 數(shù)據(jù)結(jié)構(gòu)

C++ 類 & 對(duì)象

C++ 指針

C++ 繼承

C++ STL 教程

C++ 參考手冊(cè)

C++ 對(duì)象和類

在本文中,您將學(xué)習(xí)在C ++編程中使用對(duì)象和類。

C ++是一種多范式編程語言。意思是說,它支持不同的編程風(fēng)格。

解決編程問題的一種流行方法是創(chuàng)建對(duì)象,即所謂的面向?qū)ο缶幊田L(fēng)格。

C ++支持面向?qū)ο螅∣O)的編程風(fēng)格,該風(fēng)格使您可以通過創(chuàng)建對(duì)象將復(fù)雜的問題分成較小的集合。

對(duì)象只是數(shù)據(jù)的集合和作用于這些數(shù)據(jù)的函數(shù)。

C ++類

在C ++中創(chuàng)建對(duì)象之前,需要定義一個(gè)類。

類是對(duì)象的藍(lán)圖。

我們可以將類視為房子的草圖(原型)。它包含有關(guān)地板,門,窗戶等的所有詳細(xì)信息。基于這些描述,我們建造了房屋。而房子就是對(duì)象。

由于可以用相同的描述制作許多房屋,因此我們可以根據(jù)一個(gè)類創(chuàng)建許多對(duì)象。

如何在C ++中定義一個(gè)類?

在C ++中,使用關(guān)鍵字class及其后的類名定義了一個(gè)類。

類的主體在大括號(hào)內(nèi)定義,并在末尾以分號(hào)結(jié)束。

class className
   {
   // 一些數(shù)據(jù)
   //一些功能
   };

示例:C ++中的類

class Test
{
    private:
        int data1;
        float data2;  

    public:  
        void function1()
        {   data1 = 2;  } 

        float function2()
        { 
            data2 = 3.5;
            return data2;
        }
   };

在這里,我們定義了一個(gè)名為Test的類。

此類具有兩個(gè)數(shù)據(jù)成員:data1和data2和兩個(gè)成員函數(shù):function1()和function2()。

關(guān)鍵字:private 和 public

在上面的示例中,您可能已經(jīng)注意到兩個(gè)關(guān)鍵字:private和public。

private關(guān)鍵字使數(shù)據(jù)和函數(shù)變?yōu)樗接?。只能從同一類?nèi)部訪問私有數(shù)據(jù)和函數(shù)。

public關(guān)鍵字將數(shù)據(jù)和函數(shù)公開。數(shù)據(jù)和函數(shù)可以在類之外訪問。

這里,data1和data2是私有成員,而function1()和function2()是公共成員。

如果嘗試從類外部訪問私有數(shù)據(jù),則編譯器將引發(fā)錯(cuò)誤。OOP中的此功能稱為數(shù)據(jù)隱藏。

C ++對(duì)象

定義類時(shí),僅定義對(duì)象的規(guī)范;沒有分配內(nèi)存或存儲(chǔ)空間。

要使用類中定義的數(shù)據(jù)和訪問函數(shù),需要?jiǎng)?chuàng)建對(duì)象。

在C ++中定義對(duì)象的語法

className objectVariableName;

您可以用如下方法創(chuàng)建Test類的對(duì)象(在上面的示例中定義):

class Test
{
    private:
        int data1;
        float data2;  

    public:  
        void function1()
        {   data1 = 2;  } 

        float function2()
        { 
            data2 = 3.5;
            return data2;
        }
   };

int main()
{
    Test o1, o2;
}

在這里,創(chuàng)建了Test類的兩個(gè)對(duì)象o1和o2。

在上面的Test類中,data1和data2是數(shù)據(jù)成員,而function1()和function2()是成員函數(shù)。

如何在C ++中訪問數(shù)據(jù)成員和成員函數(shù)?

您可以使用來訪問數(shù)據(jù)成員和成員函數(shù)。(.)運(yùn)算符。例如,

o2.function1();

這將在Test類中為對(duì)象o2調(diào)用function1()函數(shù)。

同樣,可以通過以下方式訪問數(shù)據(jù)成員:

o1.data2 = 5.5;

重要的是要注意,只能從類內(nèi)部訪問私有成員。

因此,您可以使用o2.function1(); 上面示例中的任何函數(shù)或類。 但是,代碼o1.data2 = 5.5; 應(yīng)該始終在類Test中。

示例:C ++編程中的對(duì)象和類

// 用于說明C ++編程中對(duì)象和類的工作的程序
#include <iostream>
using namespace std;

class Test
{
    private:
        int data1;
        float data2;

    public:
       
       void insertIntegerData(int d)
       {
          data1 = d;
          cout << "數(shù)字: " << data1;
        }

       float insertFloatData()
       {
           cout << "\n輸入數(shù)據(jù): ";
           cin >> data2;
           return data2;
        }
};

 int main()
 {
      Test o1, o2;
      float secondDataOfObject2;

      o1.insertIntegerData(12);
      secondDataOfObject2 = o2.insertFloatData();

      cout << "您輸入了 " << secondDataOfObject2;
      return 0;
 }

輸出結(jié)果

數(shù)字: 12
輸入數(shù)據(jù): 23.3
您輸入了 23.3

在這個(gè)程序中,在Test類中定義了兩個(gè)數(shù)據(jù)成員data1和data2,以及兩個(gè)成員函數(shù)insertIntegerData()和insertFloatData()。

聲明同一個(gè)類的兩個(gè)對(duì)象o1和o2。

使用以下方法為o1對(duì)象調(diào)用insertIntegerData()函數(shù):

o1.insertIntegerData(12);

這會(huì)將對(duì)象o1的data1值設(shè)置為12。

然后,調(diào)用對(duì)象o2的insertFloatData()函數(shù),并使用以下方法將函數(shù)的返回值存儲(chǔ)在變量secondDataOfObject2中:

secondDataOfObject2 = o2.insertFloatData();

在這個(gè)程序中,o1的data2和o2的data1沒有被使用,并且包含垃圾值。

您還應(yīng)該檢查以下主題,以了解有關(guān)對(duì)象和類的更多信息:

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清