我有一个私人领域的课程:
std::set<std::string> _channelNames;
..和一个可选的setter函数:
void setChannelNames(std::set channelNames);
在setter函数中,如何将private _channelNames字段替换为从setter函数传递的字段?
我试过了:
void Parser::setChannelNames(std::set channelNames) {
this->_channelNames = channelNames;
}
但这在VS2005中产生了错误:
Error 2 error C2679: binary '=' : no operator found which takes a right-hand operand of type 'std::set' (or there is no acceptable conversion) parser.cpp 61
我绝对是C ++新手,并期望我应该在这里做一些指针工作。
任何快速提示?
谢谢!
答案 0 :(得分:6)
你只需要专门化模板。如果没有专业化,则无法使用std::set
。
void Parser::setChannelNames(const std::set<std::string> & channelNames) {
this->_channelNames = channelNames;
}