C++派生继承中的一个问题!
来源:互联网 发布:电脑版读书软件 编辑:程序博客网 时间:2024/05/21 17:26
#include "iostream.h"
class A...{
public:
int num;
A()...{
num = 1;
}
virtual void Display()...{
cout <<"A";
}
void print()...{
cout << num;
}
static void show()...{
A a;
a.Display();
a.print();
}
};
class B:public A...{
public:
int num;
B()...{
num = 2;
}
void Display()...{
cout <<"B";
}
void print()...{
cout << num;
}
virtual void show()...{
Display();
print();
}
};
class C:public B...{
public:
int num;
C()...{
num = 3;
}
void Display()...{
cout <<"C";
}
virtual void print()...{
cout << num;
}
void show()...{
Display();
A::print();
}
};
void main()
...{
B *b = new C;
cout<<"b->num="<<b->num<<endl;
}
class A...{
public:
int num;
A()...{
num = 1;
}
virtual void Display()...{
cout <<"A";
}
void print()...{
cout << num;
}
static void show()...{
A a;
a.Display();
a.print();
}
};
class B:public A...{
public:
int num;
B()...{
num = 2;
}
void Display()...{
cout <<"B";
}
void print()...{
cout << num;
}
virtual void show()...{
Display();
print();
}
};
class C:public B...{
public:
int num;
C()...{
num = 3;
}
void Display()...{
cout <<"C";
}
virtual void print()...{
cout << num;
}
void show()...{
Display();
A::print();
}
};
void main()
...{
B *b = new C;
cout<<"b->num="<<b->num<<endl;
}
继承之后
类B中的num不会覆盖A中的num,继承之后B中A中的num不可见,除非A::num才可以
类C中的num也不会覆盖B和A中的num,也是同样的道理
当一个c对象地址转成B地址,可见的就是B类中num,所以打印出来的就是2
- C++派生继承中的一个问题!
- C++: 继承与派生
- 继承与派生(C++)
- C++----继承和派生
- C++:继承与派生
- 【C++】继承和派生
- 继承---派生类(C++)
- C++_继承与派生
- C++_继承与派生
- C++_继承与派生
- [C++]继承和派生类
- C++: 类的继承派生
- C++_继承与派生
- C++__继承和派生
- 【学习C++】继承与派生
- C/C++——继承和派生
- C++中的 public和private以及protected派生类继承问题和访问权限问题
- lua 一个简单的继承/派生关系
- 方法、规范与技巧
- :存储过程学习
- Winxp下kernel32.dll内部的函数集合和地址值(转)
- DeployEnvironmentofExtProconServe.
- 7.0入门(六)---建立存储过程体
- C++派生继承中的一个问题!
- 7.0入门(八)---存储过程中返回结果
- T-SQL:三个通用的与日期相关的,辅助按周(星期日是周的最后一天)汇总的自定义函数
- 关于用W2KADSERVER和SQL2000企业版安装双机
- 通过OLEDB连接MS时出现乱码的解决方法
- 如何实施Benchmark标准测试(之一)---问题的提出及Tpc-C标准
- SQL*PLUS初学
- 前段时间写的一个关于成本计算的存储过程!
- 在RAC环境中如何管理日志(redologfile)组