结构体
C++中也有结构体(struct)。C++中的结构体与C语言中的结构体有一些区别:
一、默认访问权限
C 语言结构体:成员的默认访问权限是公有(public)的。
C++结构体:成员的默认访问权限也是公有,但 C++中的结构体可以像类一样定义成员函数,并且可以设置成员的访问权限为私有(private)、保护(protected)等。
例如:
// C++
struct MyStruct {
private:
int privateMember;
public:
void setPrivateMember(int value) {
privateMember = value;
}
int getPrivateMember() const {
return privateMember;
}
};
二、与类的关系
在 C++中,结构体和类(class)非常相似,唯一的区别是默认的访问权限不同。类的默认成员访问权限是私有,而结构体是公有。
class MyClass {
// 默认私有成员
public:
void someFunction();
};
struct MyStruct {
// 默认公有成员
void someFunction();
};
三、模板支持
C++中的结构体可以作为模板参数,就像类一样。
template <typename T>
struct MyTemplateStruct {
T data;
};
四、继承和多态
C++中的结构体可以参与继承和多态,与类的使用方式类似。
struct BaseStruct {
virtual void print() const {
std::cout << "BaseStruct\n";
}
};
struct DerivedStruct : BaseStruct {
void print() const override {
std::cout << "DerivedStruct\n";
}
};
总的来说,C++中的结构体在功能上比 C 语言中的结构体更强大,可以像类一样使用,具有更多的特性和灵活性。
Last updated