C++基础篇:构造函数注意的问题

构造函数

目的:初始化对象
每个对象的建立都必须进行初始化,也就是把对象中的数据都赋值,构造函数分为带参构造与不带参构造;

<1>不带参构造函数:

当对象建立时未给予任何参数赋值时调用,注意当重载多个非缺省项参数的构造函数时,必须存在一个不带参构造函数,以此来面对对象建立时未赋值参数情况;

举例:

Time ()                                                  
{
   h=0;m=0;s=0;.............(1)
}
//也可表示为:
Time():h(0),m(0),s(0) {}
关于初始化构造函数列表介绍,这里允许我偷个懒,
可以去https://www.cnblogs.com/BlueTzar/articles/1223169.html详细查看:
简洁总结一下,
当类中存在自定义其他类的对象,初始化列表会在此处调用数据中对象的构造函数,然后再进入函数体执行其他赋值;即使你未写初始化列表,数据对象也会隐式在初始化列表里调用数据对象的构造函数;
当数据成员中存在引用或const时,由于这些只能初始化,因此只用用初始化列表初始化;
其他情况下,两种用法基本相同;

Time(int a,int b,int c)
{
  h=a;m=b;s=c;..................(2)
}

//不能仅有(2)存在无(1);

Note:
初始化列表的成员初始化顺序:
    C++初始化类成员时,是按照声明的顺序初始化的,而不是按照出现在初始化列表中的顺序。

<2>带参构造函数

含缺省项参数的构造函数:
Time(int a=0,int b=0,int c=0):h(a),m(b),s(c) {}
缺省项参数必须从右往左连续存在;

就酱紫,以后再补充啊~~

再见再见再见

感想:
构造函数也是成员函数,也可以调用函数;
第一次写博客,请多多指教,以后我会逐渐补充构造函数的介绍,

欢迎大家在评论区提问,一起讨论哦!

吐舌头吐舌头吐舌头

写到这里不仅想起考试中“所有成员函数都有指针”是否正确呢?
刚看到一个问题”结构体是否有构造函数呢?“





猜你喜欢

转载自blog.csdn.net/qq_40583795/article/details/80652982