C++ struct与class
1、相对于C中struct,C++做了很大的扩充。基本上和class 差不多。只有一些细节上的差别。
2、对于成员的默认访问权限,class是private,struct是public。需要注意的是,程序中应该明确指出访问权限,不要依赖默认的访问权限。对于其它默认的情况也是一样,尽量明确指出来,这是一个良好的编程习惯,增加代码的可读性。
3、对于默认的继承方式,class是private,struct是public。需要注意的是,class可继承class,也可继承struct。struct可继承struct,也可继承class。默认的继承方式取决于子类是struct还是class。和上面一样,这里应该明确指出继承方式,而不应该依赖默认。
4、对于struct和class,都可以使用使用{}来赋初值,前提是:a、字段是public,因为public才可以直接访问;b、没有父类,没有自定义构造方法和虚方法,可以有普通的成员方法。可以认为,继承,自定义构造方法,虚方法改变了类的内部结构,因此编译器禁止使用{}赋初值。
5、定义模版参数,使用typename,也可以使用class。但是不能使用struct。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理