[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. dedecms flag标签属性

    头条[h] flag='h' 推荐[c] flag='c' 幻灯[f] flag='f' 特荐[a] flag='a' 滚动[s] flag='s' 加粗[b] flag='b' 图片[p] flag ...

  2. js手机站跳转

    var yunzhuanhua_pc_domain = "http://www.域名.com#yht"; //PC站网址var yunzhuanhua_wap_domain = & ...

  3. 熄灯问题 --POJ 2811-ACM

    问题描述 盏灯的状态. 列的灯的状态就不改变. 请你写一个程序,确定需要按下哪些按钮,恰好使得所有的灯都熄灭.根据上面的规则,我们知道: 次按下时所产生的结果.因此,每个按钮最多只需要按下一次: (2 ...

  4. dedecms织梦二级菜单的实现方法

    首先,复制代码: 程序代码 {dede:channelartlist typeid='top' cacheid='channelsonlist'} {dede:channel type='son' n ...

  5. JavaScript中document.cookie

    “某些 Web 站点在您的硬盘上用很小的文本文件存储了一些信息,这些文件就称为 Cookie.”—— MSIE 帮助.一般来说,Cookies 是 CGI 或类似,比 HTML 高级的文件.程序等创建 ...

  6. C# 进销存系统开发框架

    C/S系统开发框架-企业版 V4.0 (Enterprise Edition) 简介: http://www.csframework.com/cs-framework-4.0.htm 视频下载: 百度 ...

  7. 解决Silverlight5_tools无法安装问题(试验已成功)

    当前位置: 银光首页 > Silverlight > Silverlight学习教程 > 命令:regedit 打开节点:HKEY_LOCAL_MACHINE\SOFTWARE\Mi ...

  8. ubuntu wubi安装注意事项

    从这个镜像下载 http://mirrors.163.com/ubuntu-releases/12.10/ ubuntu-12.10-desktop-amd64.iso 和 wubi.exe然后放到同 ...

  9. Pots

    poj3414:http://poj.org/problem?id=3414 题意:给你两个罐子的体积,然后让你只用这两个罐子量出给定k体积的水.题解:这里可以把两个罐子看成是一个二维的图,然后体积的 ...

  10. hdu 5150 Sit sit sit

    http://acm.hdu.edu.cn/showproblem.php?pid=5151 直接判断是不是素数,然后再注意1就行. #include <cstdio> #include ...