读书人

error C2664 cannot convert paramete

发布时间: 2012-01-28 22:06:14 作者: rapoo

error C2664 cannot convert parameter 1 from 'std::string' to 'const processor &'
在vc2003下添加了个类processor 。
将自动生成的构造函数改为如下:
processor::processor(string filename,bool display=true)
在一个对话框的.cpp文件里使用如下语句:
processor p1(openfilename);

其中openfilename 为string类型。
出现如下错误提示:
error C2664: 'processor::processor(const processor &) ' : cannot convert parameter 1 from 'std::string ' to 'const processor & '
Reason: cannot convert from 'std::string ' to 'const processor '
No constructor could take the source type, or constructor overload resolution was ambiguous

请教什么原因?

[解决办法]
processor p1(openfilename);
这句有岐意,编译器选择另一个构造函数:processor::processor(const processor & pr);
所以,这样写试试:
processor p1(openfilename, true);

[解决办法]
processor::processor(const string& filename, bool display=true)
这样试试

读书人网 >VC/MFC

热点推荐