`
fireDragonpzy
  • 浏览: 447642 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

C++效率(一)构造函数初始化及参数的默认值

阅读更多
本文为firedragonpzy原创,转载务必在明显处注明:
转载自【Softeware MyZone】原文链接: http://www.firedragonpzy.com.cn/index.php/archives/107


构造函数的初始化有两种:(一)在构造函数体的赋值语句中设置,(二)在构造函数中使用初始化列表
(一)构造函数体的赋值语句中设置
Student( string s_name = "pzy", string s_sex = "male", int i_age = 20 )
{
   name = s_name;
   sex = s_sex;
   age = i_age;
}

(二)使用初始化列表
Student(string s_name, s_string sex, int i_age) : name(s_name), sex(s_sex), age(i_age) 

其实,这不仅表示法不同,初始化的方式上也有很大的不同,效率也有悬殊。在使用在构造函数体中初始化成员的时候,首先创建该数据成员,再进行赋值语句。而使用初始化列表,数据成员在创建的时候,就用初始值进行了初始化。这要比在构造函数中使用赋值语句效率高得多,特别是在数据成员是一个类实例的时候。
分享到:
评论

相关推荐

    c++ 入门 构造函数 时间类

    2)构造函数采用带初始化列表的构造函数(参数默认值为空或零) 3)显示的写出析构函数 4)成员函数分别为:setDate ,getDate ,setTime ,getTime。 5)分别在栈区、堆区、全局区分别创建三个对象(创建时不提供参数...

    C++ 课程作业 类与对象2——构造函数、拷贝构造函数、析构函数(计算两个日期间的天数)

    4)构造函数的三个参数:小时、分、秒 设计为默认形成,其默认值为0。 5) 输出"构造函数被调用" 3、请设计一个拷贝构造函数,实现将参数的值全部传递给当前对象,同时输出“拷贝构造函数被调用” 4、请...

    C++中构造函数的参数缺省的详解

    C++中构造函数的参数缺省的详解 前言: 构造函数中参数的值既可以通过实参传递,也可以指定为某些默认值,即如果用户不指定实参值,编译系统就使形参取默认值。在构造函数中也可以采用这样的方法来实现初始化。 #...

    定义一个圆类circle,它有一个变量radius(半径)。从键盘输入数据,通过构造函数的参数传递给radius,编程计算并输出圆的的周长和面积。但是,必须确保输入的数据不为复数。

    定义一个圆类circle,它有一个变量radius(半径)。从键盘输入数据,通过构造函数的参数传递给radius,编程计算并输出圆的的周长和面积。但是,必须确保输入的数据不为复数。

    C++类中的特殊成员函数示例详解

    默认构造函数指不需要参数就能初始化的构造函数。包含无参和所有参数有默认值两种类型的构造函数。 2、复制构造函数 复制构造函数指使用该类的对象作为参数的构造函数。可以有其他参数,但必须提供默认值。 3、复制...

    新手学习C++入门资料

    C++函数的原型中可以声明一个或多个带有默认值的参数。如果调用函数时,省略了相应的实际参数,那么编译器就会把默认值作为实际参数。可以这样来声明具有默认参数的C++函数原型: #include iostream.h void show...

    二级C++笔记.docx

    在 C++ 中,如果构造函数没有参数,或者构造函数的所有参数都有默认值,就可以称其为缺省构造函数。一个类中只能有一个缺省构造函数。 十六、操作符重载 15. ++x 的重载函数: 在 C++ 中,++x 的重载函数可以使用...

    Effective C++

    条款12:尽量使用初始化而不要在构造函数里赋值 条款13:初始化列表中成员列出顺序和它们在类中的声明顺序相同 条款14:确定基类有虚析构函数 条款15:让OPERATOR=返回*THIS的引用 条款16:在OPERATOR=中对所有数据成员...

    C++结构体实例和类实例的初始化

    结构体实例(包括共用体)和类实例的初始化方法完全相同,二者都可以应用于继承层次中。不同点是结构体(包括共用体)默认成员为public...  ④ 这种初始化对象方式,要求类中不能编写任何构造函数 struct S { //cla

    C面向对象程序设计上机考试题库.doc

    然后,我们定义了两个构造函数:一个带参数的构造函数,用于初始化长方柱的长宽高;一个无参数的构造函数,用于设置长方柱的默认值。最后,我们在main函数中创建了两个Box对象,计算其体积,并输出结果。 知识点: ...

    大学生c++上机实验实验三.docx答案

    可以采用没有参数的构造函数初始化对象,此时的成员变量采用默认值 0; c.可以采用直接输入参数的方式来初始化该类的成员变量; d.可以采用其它的 CPoint 对象来初始化该类的成员变量; e.设计一个主函数来测试...

    C++高级程序设计实验报告-实验四类的应用

    2.该类必须提供一个构造函数,初始化数据成员,最好带有默认值。该构造函数应当确认的分子和分母数据的有效性,并且应该以最简化的形式保存。例如:当输入的分子是6,分母是8,应该处理成简化的形式再保存,最后分子...

    c++实验二 简单的类的定义与使用.docx

    在本实验中,我们定义了一个名为"Ex"的构造函数,它有两个参数"x"和"c",其中"c"有默认值'c'。构造函数的作用是初始化对象的成员变量"da"和"ch"。 ```cpp Ex::Ex(int x, char c):da(x), ch(c) //外部为构造函数 {...

    C++复习资料之系列

    在一个C++程序中,main函数的位置( c )。 (a) 必须在程序的开头 (b) 必须在程序的后面 ( c ) 可以在程序的任何地方 (d) 必须在其它函数中间 2.用C++语言编制的源程序要变为目标程序必须要经过( d )。 (a) ...

    面向对象程序与设计大作业实验报告.zip

    2. 类体内要定义对日期的初始化构造函数,包含一个重载默认值方式; 3. 日期包括年月日,需要考虑日和月的进位对月年的改变问题,特别注意不同月份天数的问题,判断闰年问题; 4. 当做日期加或减操作时,需要计算和...

    C++程序设计彻底研究(是code不是书)

    19.3 组合对象的构造函数和析构函数 19.4 继承(Inheritance) 19.5 protected成员 19.6 派生类所定义的对象的构造和析构次序 19.7 混合组合和继承以建立新的类 19.8 常犯的错误 19.9 本章重点 19.10 本章练习...

    有理分数的四则算术运算符重载 .cpp

    提供一个构造函数,使该类的对象能够在声明时进行初始化。构造函数应以简化形式存储分数。分数 2/4 等价于 1/2,并将作为分子中的 1 和分母中的 2 存储在对象中。 如果没有提供初始值设定项,请提供默认值为 1 的无...

Global site tag (gtag.js) - Google Analytics