cal*_*pto 9 c++ inheritance class
我不确定需要多少信息来回答这个问题,所以请告诉我是否需要更多信息.
当我突然遇到这条消息时,我正在修改我编写的大代码:error: type 'integer' is not a direct base of 'integer'.我知道它的继承问题,但我不继承其他类.
导致此问题的代码是
integer(const std::string & val, uint16_t base): integer(val.begin(), val.end(), base) {}
Run Code Online (Sandbox Code Playgroud)
和
integer(iterator start, iterator end, uint16_t base)
Run Code Online (Sandbox Code Playgroud)
已定义.
我需要做些什么来解决这个问题?
编辑:im编译与-std = c ++ 0x,根据答案,我应该能够编译,除非我的编译器是旧的:gcc 4.6.2我认为
Fle*_*exo 19
看起来你正试图直接调用另一个构造函数.你不能在C++ 03中做到这一点,但你可以在C++ 11中做到这一点:
Run Code Online (Sandbox Code Playgroud)class SomeType { int number; public: SomeType(int new_number) : number(new_number) {} SomeType() : SomeType(42) {} };
你需要g ++ 4.7或更高版本来工作,4.6还不支持这个功能,即使是-std = c ++ 0x,我在我的系统上测试了两个版本.