21xrx.com
2024-12-22 21:21:05 Sunday
登录
文章检索 我的文章 写文章
C++中struct和class的区别和用法
2023-06-24 07:05:31 深夜i     --     --
C++ Struct Class 区别 用法

C++中,struct和class都是用来定义自定义数据类型的关键字。虽然两者的使用方式类似,但是在细节上有一些不同。

struct是一种简单的自定义数据类型,其成员默认为公共的。在struct中,可包含成员变量、成员函数和其他结构体,这与class非常相似。但是,在使用时,通常将struct用于较小的数据类型,如有几个成员的简单数据结构。

例如,下面是一个使用struct定义的简单的点类:


struct Point {

  int x;

  int y;

  void print() {

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

  }

};

class则是一种复杂的自定义数据类型,通常包含私有的成员变量和公共的成员函数。使用class定义的自定义数据类型是OOP(面向对象编程)的一部分。在使用class时,变量和函数默认都是私有的,因此需要使用public访问级别来将其设置为公共。

例如,下面是一个使用class定义的简单的矩形类:


class Rectangle {

private:

  int width;

  int height;

public:

  Rectangle(int w, int h): width(w), height(h) {}

  int getArea() {

    return width * height;

  }

};

在使用struct和class时,有几个需要注意的细节:

1. 在struct和class中都可以使用继承。struct和class都可以充当基类或派生类。

2. 在C++中,class可以使用多态性,而在struct中,不同的版本不能相互转换。因此,在需要使用多态性的情况下,请使用class。

3. 使用struct和class定义的自定义数据类型可以像内置类型一样使用。

总之,struct和class是C++中定义自定义数据类型的基本关键字。建立在它们之上的OOP编程,可以大大提高编程的表现力和可重用性。无论使用struct还是class,都应该注意适当的访问控制和成员变量的定义方式,以提高代码的可读性和封装性。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复