“OLDPAN博客”,侃侃而谈人工智能 深度酝酿优质原创文!
阅读本文需要 1X 分钟 ?
什么是父类指针
父类指针也可以称为基类指针,当父类(基类)指针指向派生类(子类)指针的时候,可以触发“多态的效果”。不过本文的重点不在“多态”,而是聊聊当父类指针和子类指针互相赋值时需要注意的问题。
废话不多说,直接看代码~
假设我们有两个类,一个是Base
父类,另一个是Derived
子类。
class Base //父类
{
public:
virtual int fun() ; // 虚函数
};
int Base::fun() // virtual 字段不用在函数体时定义{
std::cout <"Base::fun()" <std::endl;
}
class Derived: public Base //子类
{
public:
int fun();
int derived_fun();
int derived_fun_fun();
private:
int dummy = 1;
};
// 继承父类的函数
int Derived::fun() {
std::cout <"Derived::fun()" <std::endl;
}
// 子类独有函数
int Derived::derived_fun() {
std::cout <"Derived::derived_fun()" <std::endl;
std::cout <this->dummy <std::endl;
}
// 子类独有函数 且调用父类继承的函数
int Derived::derived_fun_fun() {
std::cout <"Derived::derived_fun_fun()" <std::endl;
fun();
}
好了,类的定义完了,我们来执行:
Base base;
base.fun();
Derived derived;
derived.fun();