12. 标准 C++ 类总结

1. C 结构体和 C++ 结构体的区别

C 语言的结构体内部只能定义成员变量,不能定义成员函数,如果需要操作成员变量的值,需用定义全局函数来实现。而 C++ 的结构体则可以定义成员函数,使用成员函数可以操作成员变量。使用成员函数代替全局函数更有利于函数的归类,防止全局函数太多而混乱。

2. C++ 结构体 和 类 的区别

C++ 结构体和 C++ 的类是一样的功能,他的内部可以定义成员变量和成员函数,也可以重新定义和替代默认的构造函数和析构函数,不同之处在于 C++ 结构体内默认所有的成员变量和成员函数都是共有属性(public),而类内默认所有的成员变量和成员函数都是私有属性(private)。

3. 标准 C++ 结构体和 类的默认四个成员函数

  1. 无参的构造函数:在对象的内存分配后调用。默认的构造函数什么都不做,如果需要自定义初始化类内的成员变量,则需要用自定义的构造函数类替代默认的构造函数。
  2. 析构函数:在对象释放自己的内存前自动调用,通常用来释放对象占用的资源。默认的析构函数什么都不做。
  3. 拷贝构造函数:在对象的内存分配后,同时使用一个同类型对象进行初始化时自动调用。默认的拷贝构造函数执行浅拷贝,如果需要自定义复制过程则需要自定义此拷贝构造函数来替代默认的拷贝构造函数。
  4. 拷贝赋值函数:在创建对象已经创建后,在重新使用同类型的对象对此对象重新赋值时调用。默认的拷贝赋值函数执行浅拷贝,如果需要自定义赋值时的复制过程则需要自定义此拷贝赋值函数来替代默认的拷贝赋值函数。