【发布时间】:2011-03-10 04:23:09
【问题描述】:
我有类似的东西(简体)
class A
{
public:
virtual void Function () = 0;
};
class B
{
public:
virtual void Function () = 0;
};
class Impl : public A , public B
{
public:
????
};
如何实现 A 的 Function () 和 B 的 Function() ? Visual C++ 允许您只定义特定的内联函数(即不在 cpp 文件中), 但我想这是一个扩展。 GCC 对此抱怨。 有没有标准的 C++ 方法来告诉编译器我要覆盖哪个函数?
(Visual C++ 2008)
class Impl : public A , public B
{
public:
void A::Function () { cout << "A::Function" << endl; }
void B::Function () { cout << "B::Function" << endl; }
};
谢谢!
【问题讨论】:
-
另外,我终于意识到在实现多个 COM 接口时 QueryInterface 是如何工作的! :)
标签: c++ virtual overriding diamond-problem