#include<iostream>
using namespace std;
class Student{
private:
int num;
public:
Student(int a){
num = a;
}
void display(){
cout<<"num:"<<num<<"\n";
}
}:
class Gradute:public Student{
private:
float wage;
public:
Gradute(int a,float b):Student(a){
wage = b;
}
void display(){
cout<<"num :"<<num<<" "<<"wage :"<<wage<<endl;
}
};
int main(){
Student stud(11111);
Gradute grad(22222,1500);
Student *ptr;
ptr = &stud;
ptr->display();
ptr = &grad;
ptr->display();
return 0;
}
声明指向基类的指针ptr,可以访问基类的成员函数display函数,但把Gradute类的对象地址赋给指针ptr,再去使用ptr访问display函数,访问的display函数依旧是基类中的函数,这是为什么?明明已经将Gradute类对象的地址赋给指针了呀,如果不允许将指向基类的指针指向派生类对象,那么在将派生类对象地址赋给指针的时候为什么不会报错?