关于c++继承
2016-09-12 20:04
204 查看
下面的程序输出什么?为什么?
class Base
{
public:
int a;
Base() { a = 1; }
void println() { cout<<a<<endl;; }
};
class Child : public Base
{
public:
int a;
Child() { a = 2; }
};
int main()
{
Child c;
c.println();
cout<<c.a<<endl;
}
答案:
1,
2
c.println()调用父类的函数,父类里面定义的函数不可能看到子类当中的成员变量,
所以肯定是输出父类的a;
cout<<c.a;子类与父类有同名成员变量,子类的覆盖父类的。
class Base
{
public:
int a;
Base() { a = 1; }
void println() { cout<<a<<endl;; }
};
class Child : public Base
{
public:
int a;
Child() { a = 2; }
};
int main()
{
Child c;
c.println();
cout<<c.a<<endl;
}
答案:
1,
2
c.println()调用父类的函数,父类里面定义的函数不可能看到子类当中的成员变量,
所以肯定是输出父类的a;
cout<<c.a;子类与父类有同名成员变量,子类的覆盖父类的。
相关文章推荐
- 36. Valid Sudoku
- C++: Perfect Forwarding
- C++——算法基础之排序——堆排序
- C++基础(2)
- 极客班C++设计模式第一周课程笔记——常用模式(1)
- C++2
- C语言学习笔记 lesson5 浮点数类型及复习
- *c[];**cp[]和*cpp题目详解
- C++——算法基础之排序——选择排序
- 极客班C++设计模式第一周课堂笔记——设计原则
- {模板}C++读入优化
- C++——算法基础之排序——快速排序
- C++ new失败的处理
- C++继承:公有,私有,保护
- C++中重载与重写函数区别及虚函数(转载)
- Android ServiceManager源码(一)-- C语言部分
- 网易0912笔试题 暗黑字符串
- 高级软件工程师之路-c语言基本数据类型
- C++11:复习新增功能
- 9.12学习记录<<C和指针>>读后感