在 C++ 中,struct
和 class
都是用于定义用户自定义数据类型的关键字,它们在语法上非常相似,但在默认访问控制和继承方式上有一些重要的区别。以下是 struct
和 class
的主要区别:
public
。public
。private
。private
。#include <iostream>
// struct 示例
struct MyStruct {
int publicVar; // 默认为 public
};
// class 示例
class MyClass {
int privateVar; // 默认为 private
};
// 继承示例
struct BaseStruct {
int baseVar;
};
struct DerivedStruct : BaseStruct {
int derivedVar;
};
class BaseClass {
protected:
int baseVar;
};
class DerivedClass : BaseClass {
int derivedVar;
};
int main() {
MyStruct s;
s.publicVar = 10; // 可以直接访问
MyClass c;
// c.privateVar = 10; // 编译错误,privateVar 是私有的
DerivedStruct ds;
ds.baseVar = 20; // 可以直接访问
ds.derivedVar = 30; // 可以直接访问
DerivedClass dc;
// dc.baseVar = 20; // 编译错误,baseVar 是 protected 的
// dc.derivedVar = 30; // 编译错误,derivedVar 是私有的
return 0;
}
struct
通常用于表示简单的数据结构,而 class
用于表示更复杂的对象,包含更多的行为和封装。struct
和 class
在功能上是完全等价的,可以互换使用。选择使用哪个关键字主要取决于个人或团队的编码风格和习惯。public
,通常用于表示简单的数据结构。private
,通常用于表示复杂的对象,包含更多的行为和封装。原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。