您的位置:首页 > 编程语言 > C语言/C++

C++构造与析构(4) - 默认构造函数

2015-05-24 10:07 288 查看
C++中,当已存在构造函数时,是否还有默认构造函数?

答案是不会有!编译器会默认给每一个类都创建一个默认构造函数。但是,如果已经自定义了构造函数,此时编译器就不会再创建默认构造函数。

可以参考下面的两个程序。
例子1

#include<iostream>

class myInteger
{
private:
int value;
};

int main()
{
myInteger I1;
return 0;
}
编译运行正常。



例子2


#include<iostream>

class myInteger
{
private:
int value;
public:
myInteger(int v)  // 自定义构造函数
{  value = v;  }
};

int main()
{
myInteger I1;
return 0;
}


编译失败。提示:In function `int main()': no matching function for call to `myInteger::myInteger()'

更多参考:

http://en.wikipedia.org/wiki/Default_constructor

http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=/com.ibm.xlcpp8l.doc/language/ref/cplr375.htm
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: