c++容易被忽视的细节序列 (一)
来源:互联网 发布:模联会议软件 编辑:程序博客网 时间:2024/05/02 05:07
1.std::size_t numDigits(int number)
函数返回类型被定义为std::size_t ,这表示size_t是被定义在std命名空间之内。std几乎是所有c++标准程序库元素的栖身之处。
另外size_t只是一个typedef,是c++计算个数时用的不带正负号类型(unsigned),例如char* -base 字符串内的字符个数,stl容器内元素的个数。
它也是vector,deque,string内的operator[ ] 函数接受的参数类型。
2.初始化(initialization)是“给予对象赋初值”的过程。对用户自定义类型而言,初始化由构造函数完成。所谓default构造函数是一个可被调用而不带任何实参者。这样的构造函数要么没有参数,要不每个参数都有缺省值。
class A{
public : A(); //default 构造函数
};
class B{
public : explicit B(int x=0,bool b=true); //default 构造函数
}
class C{
public : explicit C(int x); //不是default构造函数
}
被声明成explicit的构造函数通常比non-explicit兄弟更受欢迎,因为它禁止编译器执行非预期的类型转换。
3.default构造函数,copy构造函数,copy assignment 操作符区别
class Widget{
public :
Widget(); //default 构造函数
Widget(const Widget& rhs); //copy 构造函数
Widget& operator=(const Widget& rhs); //copy assignment 操作符
...
}
Widget w1; //调用default构造函数
Widget w2(w1); //调用copy构造函数
w1=w2; //调用copy assignment 操作符
Widget w3 = w2; //调用copy构造函数
有新对象被定义如w3,则一定有构造函数被调用。而没有新对象定义如w1=w2,就不会有构造函数被调用。
- c++容易被忽视的细节序列 (一)
- Vi 编辑器容易被忽视的细节
- 一个容易被忽视的 strlen 细节
- 容易被忽视的心理细节
- Linux容易被忽视的细节
- 容易忽视的一些细节
- c 中 stdout, stderr 容易忽视的一些细节
- C语言中一些容易忽视的细节
- Java语言中容易被人忽视的细节
- 一些容易被初学者忽视的C#语言细节
- 【解析容易被大家忽视的电脑小细节】
- C语言中可能被你忽视的小细节(一)
- 职业女性容易忽视的101个细节
- 商务通话容易忽视的细节
- 商务通话容易忽视的细节
- 几个容易忽视的java编程细节
- HttpClient容易忽视的细节-关闭连接
- 那些重要却容易被忽视的用户体验(一)
- 开源镜像站
- C++设计模式之六--Facade门面模式
- linux下core文件调试方法
- ios 证书相关
- Git图形用户工具介绍及比较
- c++容易被忽视的细节序列 (一)
- linux 下6款 git 图形客户端
- vmware tools的安装
- JavaScript-2
- 面向对象语言三大特征
- JSP Technology Conspectus And Specialties
- 大公司网易游戏游戏开发工程师面试题之做题问题
- VC++连接SQL Server2005 数据库
- MongoDB 单机