c++父类子类同名变量
来源:互联网 发布:手机拍摄淘宝视频 编辑:程序博客网 时间:2024/05/22 16:56
当父类与子类有同名且变量时:
class Base { public: int i; Base() { printf("Base()\n"); i = 99; amethod(); } void amethod() { printf("Base.amethod()\n"); } }; class Derived : public Base { public: int i; Derived() { printf("Derived()\n"); i = -1; } void amethod() { printf("Derived.amethod()\n"); } }; int main(int argc, char *argv[]) { Base *b = new Derived(); //Derived *b = new Derived();printf("%d\n",b->i);printf("%d\n",((Derived*)b)->i);b->amethod();return 0;}输出结果为:
Base()
Base.amethod()
Derived()
99
-1
Derived.amethod()
"b->i"指向的是父类的i,而"((Derived*)b)->i"指向的是子类的i。由此可见字符类中有同名成员变量的时候,用哪个变量完全是有指针类型指定的,这跟成员函数表现是不一样的。究其原因,父类的i和子类的i两个变量都在实例b中,而b的成员函数amethod()的地址是固定的只有一个,那就是Derived::amethod()。 0 0
- c++父类子类同名变量
- java 父类子类继承 同名变量 同名方法
- 父类子类有同名变量时候的初始化
- 子类父类 成员同名
- 父类和子类 同名成员变量和静态成员变量
- Java中关于子类成员变量与父类成员变量同名
- Java 理解 子类成员变量与父类成员变量同名 方法的重写
- java中子类与父类的同名变量覆盖问题
- C++继承基类与子类中的同名变量与同名函数
- c++父类和子类有同名成员函数
- JS实现子类调用父类的同名函数函数
- java 父类子类同名方法的调用
- 派生类变量和父类变量同名
- 父,子类的类变量
- c中全局同名变量、函数
- [C++] 继承与同名成员变量
- 关于Scala子类继承父类属性的问题释疑---子类构造器参数不要与父类属性同名
- c++继承父类的子类,如何调用父类的同名函数?
- HttpClient设置请求超时和读取超时
- ios app 修改名称后,收到的推送通知 显示的仍然是上一个名称 问题
- node.js study
- iOS工程中添加cocoapods
- 关于Struts2框架下使用servlet的配置
- c++父类子类同名变量
- 常用命令之 -- ls
- PHP与C(或其它语言)通过消息队列进行通讯,完整代码
- Strut2验证框架问题
- 1003. Emergency (25)
- failure during conversion to COFF
- Android图片特效处理(像素处理)
- Android小项目之底部导航(RadioButton&Fragment&ViewPager)
- Understanding the Search Service Architecture