iT邦幫忙

3

【c/c++學習筆記】class與struct的差別

有學過C語言的同學,
可能會先學到一個跟class很像的語法叫做struct
那麼兩者差異在哪裡呢?

網上有人說「class與struct最大的差別在於class可以定義成員函數(或稱方法),struct不行」,
真的是這樣嗎?
實際測試一下這段code:

#include <iostream>
#include <string>
using std::string;

class ElectricPot
{
private:
    string color;
    void secret() {
        std::cout << "神秘功能" << std::endl;
    };
public:
    int size;
    void cook() {
        std::cout << "我是" << this->color << "顏色的電鍋,我正在煮飯" << std::endl;
    }
};

int main()
{
    ElectricPot myPot;
    return 0;
}

把這段code裡面的class替換成struct也是可以在c++中編譯的,
那為何會有此一說呢?
恐怕是因為在單純C語言的語法中,struct無法定義成員函數

根據<C++ Primer 5th Edition>一書第7.2章節的說明,
classstruct唯一的差異是預設的存取層級
class預設成員都是private
struct預設成員都是public


尚未有邦友留言

立即登入留言