C/C++中struct和class的区别

目录

struct

class

struct和class的区别


struct

        struct是描述一个数据结构的集合,像一周有七天,你可以把一周看成是一个结构体,然后在结构体里面定义一个数组来存放这个七天。在C语言中,定义结构体后,如果要使用该结构体定义结构体变量的话,需要在定义的前面加上struct关键字,或者通过typedef取别名,再用结构体名称进行变量定义。而在C++语言中可以直接通过结构体名称对结构体变量进行定义。在C++中包含了三种访问权限,包含public、private、protected,在C语言中只有public权限,默认没设置权限访问时是为public权限。像下面代码中的day数组的访问权限就是public。


/*     在C语言中的结构体          */
struct Week{
    int day[7];
};

// 第一种定义方式:C语言的风格
struct Week week1;                // 定义一个结构体变量


// 第二种定义方式:C语言的风格
typedef struct Week{
    int day[7];
};

Week week1;                       // 定义一个结构体变量


/*     在C++语言中的结构体          */
 
struct Week{
    int day[7];
};

Week week1;                        // 直接用结构体名称来定义变量

class

        class类是描述对一个对象进行封装,例如一个人,他有鼻子、眼睛、嘴巴等等属性,并且他会说话、走路、眨眼睛等等方法,将这些属性全部封装成一个框,这个框叫做类。类有利于我们程序的开发和后期的维护。在C语言中没有类的概念,C++才有类,对类的定义如下代码,类包含了三种访问权限,分别是public、private、protected。默认的属性是private权限,像下面的hands属性就是private权限。

class Person{

    int hands;                // 类属性手,默认为private权限

public:
    Person(){}                // 类构造函数
    ~Person(){}               // 类析构函数


private:
    int mouth;                // 类属性嘴巴
    int eye;                  // 类属性眼睛

public:
    void Speaking();          // 类方法行为 
    void Walking();           // 类方法行为 

protected:

};

struct和class的区别

类别 struct class
含义 定义一个数据结构集合 一个的对象的封装
默认访问权限 public private
继承 能(默认公有继承) 能(默认私有继承)
包含成员函数
实现多态
定义模板参数 不能

关于C++的模板,后面小编专门写一篇来解释一下。

C/C++中struct和class的区别_第1张图片

关注微信公众号了解更多

你可能感兴趣的:(C/C++,c语言,c++)