基于C/C++将派生类赋值给基类的详细讲解
发布人:shili8
发布时间:2023-12-29 01:27
阅读次数:125
在C/C++中,派生类可以赋值给基类,这是因为派生类继承了基类的所有成员和方法。这种赋值可以通过指针或引用来实现。
首先,我们来看一个简单的基类和派生类的例子:
cpp#include <iostream> using namespace std; class Base { public: void display() { cout << "This is the base class" << endl; } }; class Derived : public Base { public: void show() { cout << "This is the derived class" << endl; } };
在这个例子中,`Base`是基类,`Derived`是派生类,`Derived`继承了`Base`的`display`方法。
现在,我们来看如何将派生类赋值给基类。我们可以使用指针或引用来实现这一点。
首先,我们来看使用指针的方法:
cppint main() { Base *basePtr; Derived derivedObj; basePtr = &derivedObj; // 将派生类对象赋值给基类指针 basePtr->display(); // 调用基类的方法 // basePtr->show(); // 错误!派生类的方法无法通过基类指针调用 return0; }
在这个例子中,我们定义了一个基类指针`basePtr`和一个派生类对象`derivedObj`。然后,我们将派生类对象赋值给基类指针`basePtr`。接下来,我们可以通过基类指针调用基类的方法。
接下来,我们来看使用引用的方法:
cppint main() { Base baseObj; Derived derivedObj; Base &baseRef = derivedObj; // 将派生类对象赋值给基类引用 baseRef.display(); // 调用基类的方法 // baseRef.show(); // 错误!派生类的方法无法通过基类引用调用 return0; }
在这个例子中,我们定义了一个基类对象`baseObj`和一个派生类对象`derivedObj`。然后,我们将派生类对象赋值给基类引用`baseRef`。接下来,我们可以通过基类引用调用基类的方法。
总结来说,派生类可以赋值给基类,这是因为派生类继承了基类的所有成员和方法。这种赋值可以通过指针或引用来实现。但需要注意的是,通过基类指针或引用只能调用基类的方法,无法调用派生类特有的方法。