我有一个虚拟内联getter和setter的A类。从A有两个类B和C派生。我有一个D类,来自B和C. Creatown D中的一个对象,并使用getName()结果“未定义的引用getName()”。删除“联机”do not't工作。头文件包含正确。 这里有什么问题?未定义的引用,但它被定义为
class A
{
public:
virtual inline std::string getName() const{return name;}
protected:
std::string name;
};
class B : public virtual A {};
class C : public virtual A {};
class D : public B, public C {};
你真的想虚拟继承? – 2011-03-19 09:01:11
显示问题的粘贴代码。上面的代码不显示它。 – wilx 2011-03-19 09:02:56
[gcc C++虚拟继承问题]的可能重复(http://stackoverflow.com/questions/2126522/gcc-c-virtual-inheritance-problem) – 2011-03-19 09:07:32