考考大家一个C++中最基本的概念,同时稍稍卖弄一下
教科书上的例子太多了,我就只写一个大概:
class A
{
public:
virtual void func(){};
};
class B: public A
{
public:
void func(){};
};
A a;
B *b = static_cast <B *> (&a);
b-> func();
为什么要使用指针b?
直接:
A a;
B b;
A(b).func(); // 这个在语法上是没有问题的
为什么不行?
学过的应该都知道答案,回答不上的的同学们要加油啦!

教科书上的例子太多了,我就只写一个大概:
class A
{
public:
virtual void func(){};
};
class B: public A
{
public:
void func(){};
};
A a;
B *b = static_cast <B *> (&a);
b-> func();
为什么要使用指针b?
直接:
A a;
B b;
A(b).func(); // 这个在语法上是没有问题的
为什么不行?
学过的应该都知道答案,回答不上的的同学们要加油啦!
