我有 2 个类,在不同的命名空间中定义:
//--==file1.hpp==--
namespace n1{
class x1 {
//.....
};
};
//--==file2.hpp==--
namespace n2{
class x1: public n1::x1{
//.....
};
};
//--== file3.hpp ==--
namespace n2 {
class x2 {
private:
n1::x1* data1_;
public:
void func(x1* data2) { data1_ = data2; }
};
};
这个编译失败了
error C2440: '=' : cannot convert from `'n2::x1 *' to 'n1::x1 *'`
我无法理解可能是什么问题,因为 n2:x1 继承自 n1::x1 ...?谢谢