class Test1
{
public:
void f1()
{
std::cout << "Test1::f1()" << std::endl;
}
virtual void f2()
{
std::cout << "Test2::f2()" << std::endl;
}
virtual void f3()
{
std::cout << "Test1::f3()" << std::endl;
}
};
class Test2
{
public:
virtual void f1()
{
std::cout << "Test2::f1()" << std::endl;
}
virtual void f2()
{
std::cout << "Test2::f2()" << std::endl;
}
};
int main()
{
Test2 t2;
Test1 *t1 = (Test1 *)&t2;
t1->f1(); //没什么好解释的,该类的指针,调用该类的函数,所以输出Test1::f1()
t1->f2();
t1->f3();
return 0;
}
对于输出结果,我希望有人能为我解一下心中的疑惑,不胜感激。
你这都没用继承,这么用会出错的。两个没有父子关系的类指针不能互相赋值
他们没继承关系,这样把2个毫无关系的类强转,得出自然不是你想要的结果
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632