在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代码保持兼容,那么结构体可能更适合。