【发布时间】:2022-01-21 07:58:39
【问题描述】:
我对向上转换和向下转换上下文中的基类引用和派生类引用感到困惑。
下面代码中&ref有什么用?在reference 中,它被标记为基类引用,并为其分配了一个派生类obj。
这背后的概念是什么?
#include <iostream>
using namespace std;
class Base
{
public:
void disp()
{
cout << " It is the Super function of the Base class ";
}
};
class derive : public Base
{
public:
void disp()
{
cout << "\n It is the derive class function ";
}
};
int main ()
{
// create base class pointer
Base *ptr;
derive obj; // create object of derive class
ptr = &obj; // assign the obj address to ptr variable
// create base class's reference
Base &ref = obj;
// Or
// get disp() function using pointer variable
ptr->disp();
return 0;
}
【问题讨论】:
-
你知道什么是引用吗?你知道什么是基类和派生类吗?
-
@bolov 是的,先生,我知道这些条款
-
那有什么困惑呢?基类引用是对基类类型的引用。
-
“这背后的概念是什么?”——你能详细解释一下你所说的“这个”是什么意思吗?我认为“this”的意思是“标记为基类引用,派生类 obj 被分配给该引用”,但其背后的概念是:派生类对象被分配给基类引用。也许可以解释为什么这对您来说似乎是错误的?否则,您可能不得不等到有人猜出您的想法。
标签: c++ class casting reference