由于C 的整数,因此无法覆盖to_string
Cannot override to_String because of an integer in C++
我有一个具有多个子类的员工类。我想在我的超级类和所有子类中覆盖函数to_string,但是由于超级类中的整数,我无法使其工作:
class Employee{
public:
Employee(...){
...
}
virtual ~Employee(){
...
}
virtual string to_String(){
string s = stringstream(this->someInteger);
return s;
}
virtual string profession(){
...
}
private:
int someInteger;
};
我在这里有"虚拟字符串to_string(){...}我试图以字符串格式返回一些整数。但是,当我尝试编译此功能时,它给了我错误消息"无效转换从" int"到'std :: ios_base :: openmode {aka std :: _ ios_openmode}'[fpremissive]。
我还试图为整数做出功能,这也无法解决问题。
但是,我试图从另一个角度解决问题,并删除to_string函数,而是使用get功能来获取整数。但是我的问题是,我无法访问子类的及格,例如此子类中的" getomestring()":
class Engineer : public Employee{
public:
Engineer(...):Employee(...){
}
~Engineer(){
...
}
string profession(){
return "someProfession";
}
string getSomeString(){
return this->someString;
}
...
private:
string someString;
};
然后,我尝试在主要函数中访问getOmestring()函数:
fout << employees[i]->getSomeInteger(); //THIS WORKS!
if(employees[i]->profession() == "someProfession"){
fout << employees[i]->getSomeString(); //but this doesnt work
}
我收到一条错误消息,说" class雇员"没有名为" getomestring"的成员。
因此,我试图派遣员工[i],以便我能够像这里解释那样稳定地访问它。这也不起作用..
我现在的问题是;我该如何工作?我究竟做错了什么?在这种情况下,要解决问题的哪个版本会更好,还是我做的一切完全错误?
而不是
string s = stringstream(this->someInteger);
使用
string s = std::to_string(this->someInteger);
相关文章:
- "error: no matching function for call to"构造函数错误
- 调用专用模板时出错"no matching function for call to [...]"
- C++ Singleton - Prevent ::instance() to variable
- 使用ios:ate写入到流会覆盖现有文件
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- Visual Studio Code "undefined reference to `WinMain@16'"
- 使用 GCC 卸载的 OpenMP 卸载失败,并出现"Ptx assembly aborted due to errors"
- 如何解决"invalid conversion from 'char' to 'const char*'"
- 使用 MATLAB 编码器生成C++代码:编译错误"undefined reference to `rgb2gray_tbb_real64'"
- 我可以重新分配/覆盖std::字符串吗
- 尝试链接我的着色器时,我收到错误代码"error c5145 must write to gl_position"
- Python str to C++ to Python str
- 为什么创建友元类的实例会导致"undefined reference to"错误?
- 叮叮当当在修复时插入多个"覆盖"说明符
- 谷歌模拟和覆盖关键字
- System.InvalidCastException - SQL to C++ - safe_cast<float>
- 使用 cmake 的 Linux 终端上的"Conversion to non-scalar type is requested"错误
- TMap::Emplace() 在应用现有密钥时会覆盖吗?
- "no matching function for call to 'Vector::Vector'"错误
- 当覆盖存在时调用基本虚拟"binded to object"函数