当前位置:首页 C++ > 正文

c++struct和class的区别

作者:野牛程序员:2023-08-11 17:14:03 C++阅读 2673

在C++中,structclass 都用于定义自定义的数据类型,但它们有一些区别在于默认的访问权限和继承方式。

1. 默认的访问权限:

  • struct:默认情况下,struct 中的成员变量和成员函数的访问权限是 public

  • class:默认情况下,class 中的成员变量和成员函数的访问权限是 private

2. 继承方式:

  • struct:默认继承方式是 public 继承。

  • class:默认继承方式是 private 继承。

除了上述区别外,structclass 在其他方面基本上是相同的,都可以包含成员变量、成员函数、构造函数、析构函数等。下面是一个示例,展示了 structclass 的区别:

#include <iostream>

struct StructExample {
    int x; // 默认 public 访问权限
    void printX() {
        std::cout << "x: " << x << std::endl;
    }
};

class ClassExample {
    int y; // 默认 private 访问权限
public:
    void setY(int value) {
        y = value;
    }
    void printY() {
        std::cout << "y: " << y << std::endl;
    }
};

int main() {
    StructExample se;
    se.x = 42;
    se.printX();

    ClassExample ce;
    ce.setY(100);
    ce.printY();

    return 0;
}

在这个示例中,StructExample 使用了 struct 关键字定义,其成员变量 x 默认具有 public 访问权限。ClassExample 使用了 class 关键字定义,其成员变量 y 默认具有 private 访问权限。可以通过成员函数来访问和修改这些成员变量。

需要注意的是,虽然 structclass 在默认情况下具有不同的访问权限和继承方式,但可以通过显式地指定访问权限和继承方式来改变它们。例如,可以在 class 中使用 public 来创建公有成员,就像在 struct 中一样。在实际开发中,根据需要选择 structclass,以及适当的访问权限和继承方式,来满足你的设计需求。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击