不考虑继承,C++中的类指针与C中的结构体指针类似
student *p; //建立一个student类指针
student aa; //建立aa对象
p = &aa;
/*
. 用在对象上;
-> 用在指向对象的指针上。
*/
p -> name ; //等价于 aa.name
P -> study(); //需要注意:在c语言结构体不能拥有函数成员。而C++中可以
但是如果把继承考虑进去就有所不同:
父类的指针可以指向子类成员
但是只能使用调用从父类继承来的方法,子类独有的方法不可以调用
主要是包含的关系:研究生属于学生,但是学生不一定属于研究生
student *p1; //建立一个student父类指针
postgraduate *p2; //建立一个postgraduate子类指针
student aa; //建立一个父类对象
postgraduate bb; //建立一个子类对象
p1 = &aa; //将父类指针指向父类对象
p2 = &bb; //将子类指针指向子类对象
p1 = &bb; //将父类指针指向子类对象
p2 = &aa; //将子类指针指向父类对象
根据上面包含关系:
p2 = &aa; //将子类指针指向父类对象
//这句应该是错误的,因为子类指针没有办法执行父类的对象
1388

被折叠的 条评论
为什么被折叠?



