`
kmplayer
  • 浏览: 509000 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

条款12:在constructor中尽量以initialization动作取代assignment动作.(尽量使用初始化列表)

 
阅读更多
1,如果class含有const成员或引用reference,由于它们只能被初始化,而不可能被赋值.
因此必须使用初始化列表.
2,出于效率上的考虑:
对象的构造分两个阶段:
(1)data member初始化.
(2)执行constructor.
如果有一个string str成员.可能会被调用两次:
一次初始化阶段,dafault constructor,一次constructor阶段,调用assignment运算符.

3,注意:static class members绝不应该在一个class's constructor中被初始化.
static members在每一个程序执行时,只应该被初始化一次.
分享到:
评论

相关推荐

    PMON 设备初始化代码分析,非常详细的资料说明

    PMON 设备中有三类 constructor 函数:命令处理初始化函数、文件系统初始化函数和可执行文件类型初始化函数。 7. 命令处理初始化 命令处理初始化是 PMON 设备初始化的重要步骤。在 dbginit 函数中,PMON 设备会...

    类继承的初始化顺序类,继承的初始化顺序

    在一个类中,成员变量按照它们在类体中声明的顺序进行初始化。如果一个成员变量的初始化依赖于另一个成员变量的值,那么应该确保后者先被初始化。 #### 构造函数中的初始化块 除了构造函数外,初始化块也是一种...

    Copy Constructors and Assignment Operators终极解释

    在C++编程语言中,复制构造函数(Copy Constructor)和赋值运算符(Assignment Operator)是两个非常关键的概念,特别是在处理对象的拷贝和赋值时。它们默认由编译器提供,但通常需要根据具体需求进行自定义,以确保正确...

    初始化和清理.ppt初始化和清理.ppt初始化和清理.ppt初始化和清理.ppt

    除了在构造器中进行初始化,还可以在变量声明时使用初始化器块或者字段直接初始化。例如: ```java class Plant { String name = "Rose"; // 字段直接初始化 int age = 0; { age = 1; // 初始化块,常用于共享...

    boa-constructor-0.6.1. for python2.5

    1. **可视化UI设计**:其支持拖放功能,允许用户通过简单的操作在界面上添加、排列和配置各种控件,如按钮、文本框、列表视图等,大大简化了UI的设计过程。开发者无需编写复杂的布局代码,即可创建出直观且用户友好...

    wordpress主题WordPress主题:Constructor

    ### JS(JavaScript)在Constructor中的应用 虽然提供的标签中只有一个“JS”,但可以推测此款主题可能在某些方面依赖于JavaScript来增强交互性和功能性。例如: 1. **动态效果**:使用JavaScript可以实现滑动、弹...

    java类中静态域、块,非静态域、块,构造函数的初始化顺序

    ### Java 类中静态域、块,非静态域、块,构造函数的初始化顺序 #### 一、概述 在 Java 编程语言中,类的初始化顺序对于理解程序的行为至关重要。特别是当涉及到静态域(静态变量)、非静态域(实例变量)、静态块...

    C++专有名词定义

    92. **成员初始化列表(Member Initialization List)**:构造函数中用于初始化对象成员的列表。 93. **直接初始化(Direct Initialization)**:使用括号 `()` 初始化对象的方式。 94. **拷贝初始化(Copy ...

    javascript new后的constructor属性.docx

    ### JavaScript中的`new`操作与`constructor`属性详解 #### 一、`new`操作符的理解 在JavaScript中,`new`操作符被用于创建一个由构造函数定义的新实例对象。当使用`new`关键字调用一个构造函数时,会执行以下步骤...

    成员的初始化顺序和多态性

    3. **静态变量的初始化**:静态变量的初始化发生在类加载时,且按照它们在类中声明的顺序进行初始化。 4. **默认值初始化**:如果没有明确指定初始值,那么Java会给成员变量一个默认值,例如`int`类型的成员变量...

    C++ 初始化列表详解及实例代码

    C++ 初始化列表是C++编程中一个非常重要的概念,它允许我们在创建对象时直接指定成员变量的初始值。初始化列表以冒号开头,后跟一系列以逗号分隔的成员变量及其对应的初始值,形式如下: ```cpp struct foo { ...

    JavaScript的constructor属性[文].pdf

    JavaScript constructor 属性在类型检查中的应用 在 JavaScript 中,constructor 属性是一种非常有用的工具,可以帮助我们检查变量的类型。Constructor 属性可以帮助我们解决 typeof 函数无法解决的问题,即无法...

    maven3.6.3资源包

    1) Error injecting constructor, java.lang.NoSuchMethodError: org.apache.maven.model.validation.DefaultModelValidator: method 'void ()' not found at org.jetbrains.idea.maven.server.embedder....

    Java中的静态块初始化块及main方法.doc

    Java编程语言中,静态块(static block)和初始化块(instance initialization block)是两种特殊的代码块,它们在程序运行的不同阶段被执行,对于类和对象的初始化有着重要作用。同时,`main`方法是Java程序的入口...

    PCI设备初始化

    需要注意的是,`initmips()`函数之前的初始化工作仅仅是为了让CPU能够在内存中正常运行做必要的准备,而真正的初始化工作将在`initmips()`函数中进行。 #### 三、`initmips()`函数详解 `initmips()`函数是整个初始...

    JS:typeof instanceof constructor prototype区别

    在JavaScript(JS)编程语言中,确定变量或对象的类型是一项基本且重要的任务。这不仅有助于理解代码的行为,还能在调试、数据验证以及实现特定功能时提供帮助。本文将深入探讨四种常用的方法来识别和判断JavaScript...

    virtio_blk初始化流程

    `register_module_init`函数将这些初始化函数加入到模块初始化的列表中,按照特定的类型(如BLOCK、OPTS、QAPI或QOM)进行组织和执行。 总之,Virtio_blk初始化流程是qemu-kvm实现高效虚拟I/O的关键部分。通过理解...

    boa.rar_Boa Construct_boa_boa constructor_boa constructor chm_bo

    在标题"boa.rar_Boa_Construct_boa_boa constructor_boa constructor chm_bo"中,我们可以看到关键词"Boa Constructor"和"boa constructor chm",这表明压缩包可能包含了Boa Constructor的安装文件或文档,如CHM...

    Java™ Puzzlers: Traps, Pitfalls, and Corner Cases.chm

    Puzzle 12: ABC Puzzle 13: Animal Farm Puzzle 14: Escape Rout Puzzle 15: Hello Whirled Puzzle 16: Line Printer Puzzle 17: Huh? Puzzle 18: String Cheese Puzzle 19: Classy Fire Puzzle 20: What's My Class...

    JavaScript中constructor()方法的使用简介

    在JavaScript编程语言中,constructor()方法是一个非常重要的概念,它属于对象的一个属性,用于指明创建该对象的构造函数。对初学者来说,理解constructor()方法是学习JavaScript对象和原型链的基础。 首先,...

Global site tag (gtag.js) - Google Analytics