您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
第19讲-覆盖方法和重载方法
发布时间:2021-05-17 15:25:06编辑:雪饮阅读()
在面向對象中函數的覆蓋是對父類函數的重定義,函數的重載是對一個類内部相同的函數,以不同的接收參數來定義的多個函數。
一個具體的實例如:
#include <iostream>
#include <string>
//基类
class BaseClass
{
public:
BaseClass();
~BaseClass();
void eat();
void doSomething();
std::string name;
};
BaseClass::BaseClass(){
name="蝙蝠侠";
std::cout<<"进入基类构造器。。。。\n";
std::cout<<"我是"<<name<<"我在基类构造器里面干了某些事。。。\n\n";
};
BaseClass::~BaseClass(){
std::cout<<"进入基类析构器....\n";
std::cout<<"我是"<<name<<"我在基类析构器里面也干了某些事情....\n\n";
}
void BaseClass::doSomething(){
std::cout<<"我是"<<name<<"我干了某些事情...\n\n";
}
void BaseClass::eat(){
std::cout<<"Base的eat方法...\n\n";
}
//子类
class SubClass:public BaseClass{
public:
SubClass();
~SubClass();
void eat();
void eat(int arg);
};
SubClass::SubClass(){
std::cout<<"进入子类构造器....\n";
std::cout<<"我是"<<name<<"我在子类构造器里面还干了某些事情....\n\n";
}
SubClass::~SubClass(){
std::cout<<"进入子类析构器.....\n";
}
//子類覆蓋父類的eat方法
void SubClass::eat(){
std::cout<<"SubClass的eat方法...\n\n";
}
//對子類eat方法的重載
void SubClass::eat(int arg){
std::cout<<"SubClass吃了"<<arg<<"個饅頭...\n\n";
}
int main(){
SubClass subClass;
subClass.name="蜘蛛侠";
subClass.doSomething();
subClass.eat();
subClass.eat(2);
std::cout<<"完事,收工!\n";
return 0;
}
編譯並運行結果如:
关键字词:覆蓋,重載
上一篇:第18讲-访问控制
下一篇:第20讲-一种特殊的友情 友元類
相关文章
-
无相关信息