在C++中,類(class)和結構體(struct)在語法上非常相似,但它們之間存在一些關鍵的區別:
默認的訪問控制和繼承權限:
private,而在結構體中,默認的是public。private,而結構體的默認繼承權限是public。語義上的區別:
兼容性:
下面是一個簡單的例子,展示了類和結構體的定義:
// 類的定義
class MyClass {
private:
int data; // 私有成員
public:
MyClass(int value) : data(value) {} // 公有構造函數
void print() const { std::cout << data << std::endl; } // 公有成員函數
};
// 結構體的定義
struct MyStruct {
int data; // 公有成員,默認訪問權限為public
void print() const { std::cout << data << std::endl; } // 公有成員函數
};
int main() {
MyClass obj(10);
obj.print(); // 調用類的成員函數
MyStruct s;
s.data = 20; // 直接訪問結構體的公有成員
s.print(); // 調用結構體的成員函數
return 0;
}
在實際編程中,你可以根據需要選擇使用類或結構體。如果你需要更強的封裝性和抽象能力,那么類可能是更好的選擇。如果你只是需要一個簡單的數據容器,并且希望與C代碼保持兼容,那么結構體可能更適合。