首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C++中struct和class之间有什么区别?

在C++中,struct和class都是用来定义自定义数据类型的模板。它们之间的主要区别在于默认的访问控制和继承方式。

  1. 访问控制

在struct中,默认的成员访问控制是public,这意味着结构体中的所有成员都可以被实例化和访问。而在class中,默认的成员访问控制是private,这意味着成员必须通过公有成员函数或公有指针来访问。

例如,以下代码是合法的:

代码语言:cpp
复制
struct Point {

    int x, y;

};

Point p; // p是可访问的

Point *pp = new Point(); // pp是不可访问的
  1. 继承方式

在struct中,默认的继承方式是public,这意味着结构体会继承基类的公有成员和成员函数。而在class中,默认的继承方式也是public,但C++11开始支持了嵌套类,这意味着类可以继承包含在类中的私有成员和成员函数,这被称为内部类。

例如:

代码语言:cpp
复制
struct Base {

    int x, y;

};

struct Derived : Base {

    void print() {

        std::cout << "x: " << x << ", y: " << y << std::endl;

    }

};

Derived d; // Base中的公有成员会被继承,并可以直接访问

总结来说,C++中struct和class的主要区别在于默认的访问控制和继承方式。通常情况下,如果需要公共访问控制和多层继承,应该选择使用struct,而如果需要私有成员和特定继承方式,应该选择使用class。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券