error C2664 cannot convert parameter 1 from 'std:string' to 'const processor &'解决思路

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)
这样试试