在C++中,类和结构是用于定义对象的数据和行为的代码结构。它们之间的主要区别在于默认的访问控制。类的默认访问控制是私有的,而结构的默认访问控制是公有的。以下是使用类和结构的不同方法:
类:
class MyClass {
public:
void set_value(int value) { this->value = value; }
int get_value() { return value; }
private:
int value;
};
结构:
struct MyStruct {
void set_value(int value) { this->value = value; }
int get_value() { return value; }
int value;
};
类可以使用关键字 class
或 struct
进行继承,但结构体只能使用 struct
进行继承。
class DerivedClass : public BaseClass {
// ...
};
struct DerivedStruct : BaseStruct {
// ...
};
类和结构都可以用作模板。
template<typename T>
class MyClass {
T value;
public:
void set_value(T value) { this->value = value; }
T get_value() { return value; }
};
template<typename T>
struct MyStruct {
T value;
void set_value(T value) { this->value = value; }
T get_value() { return value; }
};
类和结构的初始化方式有所不同。类可以使用构造函数进行初始化,而结构可以使用大括号进行初始化。
class MyClass {
public:
MyClass(int value) : value(value) {}
private:
int value;
};
struct MyStruct {
int value;
};
int main() {
MyClass obj1(10);
MyStruct obj2 = {10};
}
总之,类和结构在C++中都是用于定义对象的数据和行为的代码结构。它们之间的主要区别在于默认的访问控制。类的默认访问控制是私有的,而结构的默认访问控制是公有的。在选择使用类还是结构时,需要根据实际需求和使用场景来决定。
开箱吧腾讯云
开箱吧腾讯云
开箱吧腾讯云
云+社区沙龙online [国产数据库]
腾讯云Global Day LIVE
玩转 WordPress 视频征稿活动——大咖分享第1期
腾讯云存储专题直播
高校公开课
云+社区沙龙online第5期[架构演进]
腾讯云数据湖专题直播
领取专属 10元无门槛券
手把手带您无忧上云