【发布时间】:2016-04-28 10:08:08
【问题描述】:
我无法用语言表达我的问题。请看下面的代码,希望你能理解我的问题。
我有一个类和一个接口,如下所示。
class MyInterface
{
public:
virtual ~MyInterface(){}
virtual void print() = 0;
};
class MyClass : public MyInterface
{
public:
MyClass(){}
~MyClass(){}
void print()
{
printf("Hello World\n");
}
};
现在这是我的问题。
MyClass* myclass = new MyClass();
myclass->print(); //will print "Hello World"
MyInterface* pMyInterface = (MyInterface*)myclass;
pMyInterface->print();
第二次调用也会打印Hello World 吗?如果是,那为什么?
【问题讨论】:
-
你试过了吗?你遇到什么问题了吗?
-
不,还没有。我有一个项目正在进行中。
-
似乎很快就可以尝试......
-
@Zoidberg 不能同意这一点,尤其是对于这样一个简单而基本的问题。
-
@Zoidberg 这个问题至少应该是“我试过了,结果是 X。标准能保证这个结果吗?”