5.4.1 how to use 虚函数
#include "iostream"
using namespace std;
class base {
private:
int a;
public:
base(int a):a(a){}
void show() {
cout << "1" << endl;
}
};
class derive :public base {
private:
int b;
public:
derive(int a,int b):base(a),b(b) {}
void show() {
cout << "2" << endl;
}
};
int main() {
base* p = new base(1);
derive q(1, 2);
p = &q;
p->show();
}
上面这里的结果是1
#include "iostream"
using namespace std;
class base {
private:
int a;
public:
base(int a):a(a){}
virtual void show() {
cout << "1" << endl;
}
};
class derive :public base {
private:
int b;
public:
derive(int a,int b):base(a),b(b) {}
virtual void show() {
cout << "2" << endl;
}
};
int main() {
base* p = new base(1);
derive q(1, 2);
p = &q;
p->show();
}
上面这里的结果是2