读书人

explicit是什么错误编译不通过。

发布时间: 2012-03-12 12:45:33 作者: rapoo

explicit是什么东东,编译不通过。。
#include<iostream>
class DC
{
public:
int i;
DC(int t=100):i(t){std::cout<<"DC created!"<<std::endl;}
};

int main()
{
DC dc = 1;
return 0;
}
这样没问题

#include<iostream>
class DC
{
public:
int i;
explicit DC(int t=100):i(t){std::cout<<"DC created!"<<std::endl;}
};

int main()
{
DC dc = 1;
return 0;
}
这样编译不过去
这是为什么呢?
刚入门C++,高手指点

[解决办法]
explicit表明该构造函数是显式的
看起来lz的代码 没有什么问题
lz把错误信息贴出来看看
[解决办法]
DC dc = 1;
就是隐式调用构造函数,并将i初始化为1,就可以这样写

读书人网 >C++ Builder

热点推荐