【C++八股】struct和Class的区别

1. 默认访问控制

  • struct :结构体中的成员默认是 public,即外部代码可以直接访问结构体的成员。

  • class :类中的成员默认是 private ,即外部代码不能直接访问类的成员,必须通过公有接口(通常是成员函数)来访问。

    cpp 复制代码
    struct MyStruct {
        int x;  // 默认是 public
    };
    
    class MyClass {
        int x;  // 默认是 private
    public:
        MyClass() : x(10) {}
        int getX() { return x; }  // 需要通过成员函数访问
    };

    2. 默认继承控制

  • struct :结构体的继承默认是 public,即基类的成员默认以公有方式继承给派生类。

  • class :类的继承默认是 private,即基类的成员默认以私有方式继承给派生类。

3. 面向对象特性

  • struct:结构体通常用于简单的数据存储,不具备类中的丰富的封装、继承和多态等特性。
  • class:类是C++中的核心面向对象特性,支持封装、继承和多态等特性。

总结

相关推荐
freed_Day1 分钟前
python面向对象编程详解
开发语言·python
刚入坑的新人编程9 分钟前
暑期算法训练.9
数据结构·c++·算法·leetcode·面试·排序算法
I'mSQL19 分钟前
C#与WPF使用mvvm简单案例点击按钮触发弹窗
开发语言·c#·wpf
love530love1 小时前
命令行创建 UV 环境及本地化实战演示—— 基于《Python 多版本与开发环境治理架构设计》的最佳实践
开发语言·人工智能·windows·python·conda·uv
陪我一起学编程1 小时前
MySQL创建普通用户并为其分配相关权限的操作步骤
开发语言·数据库·后端·mysql·oracle
麦子邪1 小时前
C语言中奇技淫巧04-仅对指定函数启用编译优化
linux·c语言·开发语言
破刺不会编程2 小时前
linux线程概念和控制
linux·运维·服务器·开发语言·c++
henreash2 小时前
NLua和C#交互
开发语言·c#·交互
程序员编程指南2 小时前
Qt OpenGL 集成:开发 3D 图形应用
c语言·数据库·c++·qt·3d