C/C++ C++ 入门(2)六个默认成员函数+赋值运算符重载

03-11 1315阅读 0评论

 个人主页:仍有未知等待探索-CSDN博客

专题分栏:C++_仍有未知等待探索的博客-CSDN博客

                                                欢迎各位来指教!

目录

一、 类的6个默认成员函数

二、构造函数

1、特征

2、构造函数写法

三、析构函数

1、特征

2、析构函数写法

四、拷贝构造函数

1、特征

五、运算符重载

1、特征

2、注意

 3、赋值运算符重载(对日期类)

1.为什么赋值运算符重载需要返回值? 

2、赋值运算符重载能不能重载成全局函数。

3、运算符重载格式

4、如果用户没有显式实现

4、前置加加 和 后置加加


一、 类的6个默认成员函数

一个类中什么都没有的话叫空类。

但是任何类在什么都不写的情况时,编译器会自动生成6个默认的成员函数。

默认成员函数:用户在没有显式实现的情况下,编译器会生成的成员函数。

C/C++ C++ 入门(2)六个默认成员函数+赋值运算符重载 第1张

二、构造函数

说白了,构造函数的作用就是用于类的初始化工作。

构造函数是一个特殊的成员函数,名字与类名相同,创建类类型对象时由编译器自动调用,以保证 每个数据成员都有 一个合适的初始值,并且在对象整个生命周期内只调用一次。

1、特征

构造函数虽然名字叫做构造函数,但是构造函数的主要工作并不是开空间创建对象,而是初始化对象。

  1. 函数名与类名相同。
  2. 无返回值。(不是void空返回值,而是根本不用写)
  3. 对象实例化时编译器自动调用对应的构造函数。
  4. 构造函数可以重载。
  5. 如果类中没有显式定义构造函数的话,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;
    }
  6. C++分为内置类型(基本类型)和自定义类型。在进行默认构造函数的时候,内置类型进行初始化,自定义类型会调用它自己的默认构造函数。(在C++11版本下,对内置类型的成员变量,可以给默认值)

    class date
    {
    public:
    	date(int year, int month, int day)
    	{
    		_year = year;
    		_month = month;
    		_day = day;
    	}
    	void print()
    	{
    		cout 

免责声明
1、本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明。
2、本网站转载文章仅为传播更多信息之目的,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所
提供信息的准确性及可靠性,但不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何
损失或损害承担责任。
3、任何透过本网站网页而链接及得到的资讯、产品及服务,本网站概不负责,亦不负任何法律责任。
4、本网站所刊发、转载的文章,其版权均归原作者所有,如其他媒体、网站或个人从本网下载使用,请在
转载有关文章时务必尊重该文章的著作权,保留本网注明的“稿件来源”,并白负版权等法律责任。

手机扫描二维码访问

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,1315人围观)

还没有评论,来说两句吧...

目录[+]