构造函数

Posted on 2010-05-05 11:21 hushell 阅读(84) 评论(0)  编辑 收藏 引用
今天突然疑惑了,构造函数和定义对象的时候是怎么一一对应的呢?
直接拿c++ primer里的例子说吧,书上说得很好,可惜太凌乱。

// 预留

1. Sales_item si;
调用默认构造函数

2. Sales_item si("abc");
调用重载的构造函数

3. Sales_item si();
这是错误的定义方法,但是VS里面竟然不报错,而是把si当成了unsigned short,而且调试根本到不了这句话。总之,记住就好了。

4. Sales_item *si = new Sales_item();

5. Sales_item *si = new Sales_item;
4和5的区别在于4是显式的值初始化,而5则不作初始化。对于这个小小的差别,如果Sales_item 不是内置类型则4和5都会调用默认构造函数,而内置类型比如int就会使得si成为0或者没初始化的任意值。

6. Sales_item *si = new Sales_item("abc");

特别的构造函数:



只有注册用户登录后才能发表评论。
网站导航:   博客园   博客园最新博文   博问   管理