`
fireDragonpzy
  • 浏览: 445615 次
  • 性别: 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++中构造函数的参数缺省的详解 前言: 构造函数中参数的值既可以通过实参传递,也可以指定为某些默认值,即如果用户不指定实参值,编译系统就使形参取默认值。在构造函数中也可以采用这样的方法来实现初始化。 #...

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

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

    新手学习C++入门资料

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

    Effective C++

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

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

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

    C++复习资料之系列

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

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

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

    面向对象程序与设计大作业实验报告.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 的无...

    csci272-sp21-lab6-luisniola:GitHub Classroom创建的csci272-sp21-lab6-luisniola

    提供一个构造函数,使该类的对象在创建时可以初始化。 给出默认值a = 1.0 , b = 0.0和c = 0.0 。 构造函数不应将a的值设置为0。 如果给定0,则抛出异常。 提示:异常消息作为参数传递给异常构造函数。 提供执行...

    csci272-sp21-lab6-cissoko646:GitHub Classroom创建的csci272-sp21-lab6-cissoko646

    提供一个构造函数,使该类的对象在创建时可以初始化。 给出默认值a = 1.0 , b = 0.0和c = 0.0 。 构造函数不应将a的值设置为0。 如果给定0,则抛出异常。 提示:异常消息作为参数传递给异常构造函数。 提供执行...

    csci272-sp21-lab6-jguadarr974:GitHub Classroom创建的csci272-sp21-lab6-jguadarr974

    提供一个构造函数,使该类的对象在创建时可以初始化。 给出默认值a = 1.0 , b = 0.0和c = 0.0 。 构造函数不应将a的值设置为0。 如果给定0,则抛出异常。 提示:异常消息作为参数传递给异常构造函数。 提供执行...

    csci272-sp21-lab6-umma130:GitHub Classroom创建的csci272-sp21-lab6-umma130

    提供一个构造函数,使该类的对象在创建时可以初始化。 给出默认值a = 1.0 , b = 0.0和c = 0.0 。 构造函数不应将a的值设置为0。 如果给定0,则抛出异常。 提示:异常消息作为参数传递给异常构造函数。 提供执行...

    csci272-sp21-lab6-kouame590:GitHub Classroom创建的csci272-sp21-lab6-kouame590

    提供一个构造函数,使该类的对象在创建时可以初始化。 给出默认值a = 1.0 , b = 0.0和c = 0.0 。 构造函数不应将a的值设置为0。 如果给定0,则抛出异常。 提示:异常消息作为参数传递给异常构造函数。 提供执行...

Global site tag (gtag.js) - Google Analytics