在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++中都是用于定义对象的数据和行为的代码结构。它们之间的主要区别在于默认的访问控制。类的默认访问控制是私有的,而结构的默认访问控制是公有的。在选择使用类还是结构时,需要根据实际需求和使用场景来决定。
领取专属 10元无门槛券
手把手带您无忧上云