C/C++ C++ 入门(2)六个默认成员函数+赋值运算符重载
个人主页:仍有未知等待探索-CSDN博客
专题分栏:C++_仍有未知等待探索的博客-CSDN博客
欢迎各位来指教!
目录
一、 类的6个默认成员函数
二、构造函数
1、特征
2、构造函数写法
三、析构函数
1、特征
2、析构函数写法
四、拷贝构造函数
1、特征
五、运算符重载
1、特征
2、注意
3、赋值运算符重载(对日期类)
1.为什么赋值运算符重载需要返回值?
2、赋值运算符重载能不能重载成全局函数。
3、运算符重载格式
4、如果用户没有显式实现
4、前置加加 和 后置加加
一、 类的6个默认成员函数
一个类中什么都没有的话叫空类。
但是任何类在什么都不写的情况时,编译器会自动生成6个默认的成员函数。
默认成员函数:用户在没有显式实现的情况下,编译器会生成的成员函数。
二、构造函数
说白了,构造函数的作用就是用于类的初始化工作。
构造函数是一个特殊的成员函数,名字与类名相同,创建类类型对象时由编译器自动调用,以保证 每个数据成员都有 一个合适的初始值,并且在对象整个生命周期内只调用一次。
1、特征
构造函数虽然名字叫做构造函数,但是构造函数的主要工作并不是开空间创建对象,而是初始化对象。
- 函数名与类名相同。
- 无返回值。(不是void空返回值,而是根本不用写)
- 对象实例化时编译器自动调用对应的构造函数。
- 构造函数可以重载。
- 如果类中没有显式定义构造函数的话,C++编译器将会自动生成一个默认的无参构造,一旦用户显示定义了,编译器将不再生成。
#include using namespace std; class date { public: // 因为用户显式定义了一个构造函数,所以编译器就不会自动生成一个默认无参构造函数 date(int year, int month, int day) { _year = year; _month = month; _day = day; } private: int _year; int _month; int _day; }; int main() { // date d1; // 调用无参构造函数(因为构造函数需要参数,所以这个对象实例化的时候会进行报错) date d2(2015, 1, 1); // 调用带参的构造函数 return 0; }
-
C++分为内置类型(基本类型)和自定义类型。在进行默认构造函数的时候,内置类型进行初始化,自定义类型会调用它自己的默认构造函数。(在C++11版本下,对内置类型的成员变量,可以给默认值)
class date { public: date(int year, int month, int day) { _year = year; _month = month; _day = day; } void print() { cout
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。
还没有评论,来说两句吧...