摘要: 前一个问题是:非多态情况下,用基类指针去访问派生类的函数。那么又要问了:多态情况下,怎么用基类指针去访问基类的函数呢?当然这里指的是虚函数。答案是:用取内容运算符*获得派生类对象,然后再强制转换成基类的对象,用它去调用即可。ps. 同样的,在多态情况下,用基类指针new一个派生类对象,基类和派生类都会初始化一个对象,然后各自维护。 在用指针去调用数据成员、非虚成员函数时,两者完全相同。 唯一区别是,在多态时,基类指针调用虚函数时会转向派生类,而非多态时没有虚函数,因而没有这种特例。下面是测试程序,随意感受一下~View Code 1 #include <iostream> 2 us 阅读全文
posted @ 2013-04-12 02:28 Henry要当小码农 阅读(1687) 评论(0) 推荐(0) 编辑
摘要: 1.如题。如果是基本类型的指针指向另外一个类型的对象,编译器会报错。那么题目这个情况,会被编译器的类型安全检查出来而编译出错么?经过实测,不会报错。C++允许这样的情况存在。2.那么就会问一个问题,这个指针调用的数据成员或者成员函数是谁的呢?经过测试,是基类的。3.那么就会继续问一个问题,能用这个指针调用派生类的东西吗?经过测试,可以。但是需要用强制类型转换,将这个指针转换成派生类的指针。ps.当一个基类指针用new指向一个派生类时,基类和派生类都会初始化一个对象,各自维护。调用哪一个取决于指针是何种类型。最后是测试程序,大家随意感受一下~View Code 1 #include <io 阅读全文
posted @ 2013-04-12 02:08 Henry要当小码农 阅读(430) 评论(0) 推荐(0) 编辑