C++输出动态显示
昨天看鱼哥的视频,其中有一个细节一话带过了,不过我挺感兴趣的,就是用c++程序实现输出动态化,简而言之,就是在运行输出窗口输出的第一个位置,输出的数据能够自动的变化,比如说输出一个数字,这个数字在输出窗口能一直在窗口的第一个位置一直位置不变的自增输出。我自己也花时间想了好久,CSDN上也没有找到想要的讲解,只能求助论坛上的各位大佬们了 可以使用退格符C++父子类析构函数调用问题
本帖最后由 小明同学゛ 于 2019-3-13 16:00 编辑#include <iostream>
using namespace std;
class Animal {
public :
void sleep();
Animal() {
};
~Animal() {
cout << "父类析构函数已调用"<<endl;
};
virtual void breathe() {
cout << "父类:动物在呼吸"<<endl;
}
};
void Animal::sleep() {
cout << "睡觉中"<<'\n';
}
class Fish:public Animal {
public:
Fish() {
}
~Fish() {
cout <<"子类析构函数被调用"<<endl;
}
void breathe() {
cout << "子类:鱼在呼吸"<<endl;
}
};
int main() {
Fish fish;
Animal *ptr= new Fish;
ptr->breathe();
delete ptr;
return 0;
}
这个时候因为没有将子类析构函数声明为 virtual类型,所以会调用父类的析构函数
按理说就输出:
子类:鱼在呼吸
父类析构函数已调用
/****************************************************************/
但是实际结果会输出:
子类:鱼在呼吸
父类析构函数已调用
子类析构函数被调用
父类析构函数已调用
/****************************************************************/
求大佬解释一下为什么?
页:
[1]