[1] 构造函数是用来干什么的?

构造函数构建类的对象,初始化类变量,分配资源(内存、文件、信号量、套接口等等)

[2] List x; 和 List x();有什么不同?

  前一个是定义List的一个对象,后者则是一个返回值为List 的函数

[3] 是否一个类的构造函数可以调用另一个构造函数来初始化自己?

  不可以;举一个例子来看这个问题:

class Foo {
public:
Foo(char x);
Foo(char x, int y);
...
}; Foo::Foo(char x)
{
...
Foo(x, ); // this line does NOT help initialize the this object!!
...
}

  语句:

Foo(x, 0); 

 只是初始化了一个临时对象,而不是this对象,因此,该语句没有起到应有的效果。

[4] 是否Fred类的默认的函数函数就一定是Fred::Fred()?

  不一定,默认构造函数指的是不带参数的构造函数,例如:A::A(int x = 3, int y = 5)

  因此,一个类可以不存在默认构造函数,这是必须注意的!

[5] 如果要创建一个Fred 对像数组,什么样的构数函数会被调用?

    对于 Fred a[10]; 或者 Fred *a = new Fred(); 如果类Fred存在默认构造函数,则调用十次默认构造函数;如果类Fred不存在默认构造函数,则编译出错;

  对于 Fred a[10] = {Fred(5,7)}; 则调用 Fred(int, int) 构造函数;

[6] 构造函数初始化成员变量时,应该用 “初始化列表” 还是 “赋值”?

  初始化列表;

   优点:1)提高性能;2)

[7] 在构造函数中用this 指针是否有问题?

[8]什么是“名字构造函数”(Named Constructor Idiom)?

[9] “值返回”意味着额外的拷贝吗?

[10] 为什么我们不能在构造函数初始化列表中初始化一个 static 成员变量?

[11] 为什么一个有 static 成员变量的类会有链接错误?

[12] 什么是“static initialization order fiasco”?

[13] 我该如果避免 “static initialization order fiasco”?

[14] 为什么 construct-on-first-use 什么静态变量而不是指针?

[15] 怎么才能避免静态成员中的“static initialization order fiasco” ?

[16] 我是否要为内建类型的“static initialization order fiasco”而担心?

[17] 如果构造函数出错了怎么办?

[18] 什么是“命名参数惯用法”(Named Parameter Idiom)?

[19] 为什么我通过Foo x(Bar())声明一个Foo 对象会得到一个错误?

关于C++构造函数的FAQ的更多相关文章

  1. javascript笔记—— 构造函数

    出处:http://www.cnblogs.com/RicCC/archive/2008/02/15/JavaScript-Object-Model-Execution-Model.html 数据类型 ...

  2. C++11 FAQ中文版--转

    更新至英文版October 3, 2012 译者前言: 经过C++标准委员会的不懈努力,最新的ISO C++标准C++11,也即是原来的C++0x,已经正式发布了.让我们欢迎C++11! 今天获得St ...

  3. 《深度探索c++对象模型》chapter2 构造函数语义学

    关于c++,最常听到的一个抱怨是,编译器背着程序员做了太多事情,conversion运算符是最常被引用的一个例子:jerry schwarz,iostream函数库的建筑师,就曾经说过一个故事,他说他 ...

  4. FusionCharts导出图表常见问题(FAQ)汇总---FusionCharts常见问题大全

    在前面几篇文章中,我们介绍了FusionCharts生成Flash图表常见问题FAQ以及使用中的一些常见报错及调试/解决方法.本文继续介绍FusionCharts导出图表时的一些常见问题(FAQ). ...

  5. C++ 风格与技术 FAQ(中文版)

    Bjarne Stroustrup 的 C++ 风格与技术 FAQ(中文版) 原作:Bjarne Stroustrup    翻译:Antigloss 译者的话:尽管我已非常用心,力求完美,但受水平所 ...

  6. 《FontForge常见问题FAQ》字王翻译版

    <FontForge常见问题FAQ> 字王翻译版 原文: http://fontforge.github.io/en-US/faq/ 翻译: 字王·中国   blog: http://bl ...

  7. 在全局对象(不是指针)的构造函数里不要对std集合做太多操作

    写MaxvisionOnvif的时候,我用个宏把每个Command类注册到了CommandBuilder里面,通过全局对象初始化实现的,如下: void CommandBuilder::Registe ...

  8. .NET 基础 一步步 一幕幕[面向对象之构造函数、析构函数]

    构造函数.析构函数 构造函数: 语法: //无参的构造函数 [访问修饰符] 函数名() :函数名必须与类名相同. //有参的构造函数 [访问修饰符] 函数名(参数列表):函数名必须与类名相同. 作用: ...

  9. javascript工厂模式和构造函数模式创建对象

    一.工厂模式 工厂模式是软件工程领域一种广为人知的设计模式,这种模式抽象了创建具体对象的过程(本书后面还将讨论其他设计模式及其在JavaScript 中的实现).考虑到在ECMAScript 中无法创 ...

随机推荐

  1. thinkphp 中js 实现刷新

    <input name="Button5" value="返回" id="Button5" style="width:56p ...

  2. python str + int

    TypeError: cannot concatenate 'str' and 'int' objects 1. print 'Is your secret number " + str(p ...

  3. python中对文件、文件夹的操作需要涉及到os模块和shutil模块。

    创建文件:1) os.mknod("test.txt") 创建空文件2) open("test.txt",w) 直接打开一个文件,如果文件不存在则创建文件 创建 ...

  4. ExtJS 4 类系统

    ExtJS 4的类系统(class system)进行了一次重大重构,ExtJS4的新架构就是基于这套新的类系统构建的,因此有必要先了解以下这个class system这篇文章分为四章 I: &quo ...

  5. Web.config总结

    %windir%/Microsoft.NET/Framework/v2.0.50727/CONFIG目录下machine.config定义了针对当前机器的WinForm程序和asp.net应用程序的配 ...

  6. 用STRACE解决公司真实故障一例

    这是相关分析文档.为了职业操守,已修改相关公司敏感信息~~~ ~~~~~~~~~~~~~~~~~~~~~~~~ 关于论坛每五分钟左右,会有warning.html跳转出现的原因调查 (warning. ...

  7. VSTO:无法安装此应用程序,因为已安装具有相同标识的应用程序

    原文:VSTO:无法安装此应用程序,因为已安装具有相同标识的应用程序 在开发环境(Win7+VS2010+Outlook 2010)上做一个Outlook AddIn,运行Outlook时报如下错误: ...

  8. org.springframework.beans.BeanUtils

    org.springframework.beans.BeanUtils的一个demo.可以很优雅的实现将父类字段的值copy到子类中 下面例子的输出结果(子类使用父类的toString方法,有点意思吧 ...

  9. java学习之数组排序一:选择排序

    在讲完java中数组定义的两种方式之外,这里需要讲一下对数组常用的方法,第一个就是排序. 加入我们现在有个数组:int[] arr = {12,87,34,3,98,33,103}; 思路1: 1.首 ...

  10. 不成功的TCA代码

    %--brain mask with the brain tissue mask_name = 'C:\Users\Administrator\Desktop\workspace\preprocess ...