信管14:基类和派生类关系示例代码
来源:互联网 发布:淘宝店铺装修购买 编辑:程序博客网 时间:2024/06/01 14:37
/* 基类和派生类关系示例,
回答关联问题:
面向对象有哪几个基本特征?前面几章,我们讨论了其中哪几个特征?并解释。
掌握以下知识点:
1.掌握什么是多态?
2.多态分类:编译时多态和运行时多态。在C++中,二者是通过什么来实现的?
*/
/* 本例讲基类与派生类对象间兼容关系 */
#include<iostream>
using namespace std;
/*-------声明基类Base--------- */
class Base{
public:
int i;
Base(int x){ i=x; }
void show()
{ cout<<" Base "<<i<<endl; }
};
/*-----声明公有派生类Derived-----*/
class Derived:public Base{
public:
int y;
Derived(int x,int y1):Base(x){y=y1; }
void show()
{ cout<<" Base, i="<<i<<" derive, y="<<y<<endl; }
};
/*----普通函数,形参为基类对象的引用---*/
void fun(Base &bb)
{ cout<<" i= "<<bb.i<<endl; }
/*-----主函数----*/
int main()
{ Base b1(100);
Derived d1(11,1),d2(22,2),d3(33,3),d4(44,4);
cout<<" 1:********************"<<endl;
b1.show();
cout<<" 2:********************"<<endl;
d1.show();
d1.Derived::show();
d1.Base::show();
cout<<" 3:********************"<<endl;
b1=d1;
b1.show();
Base &b2=d2;
b2.show();
cout<<" 4:********************"<<endl;
Base *bp=&b1;
bp->show();
bp=&d1; //基类指针可以指向公有派生类对象
bp->show();
d1.show();
// bp->Derived::show(); //错误,基类指针可以指向公有派生类对象,但能能访问从基类来的成员成员
cout<<" 5:********************"<<endl;
fun(d4);
// Derived *p2=&b1; //错误,派生类指针不能指向基类对象
system("pause");
return 0;
}
回答关联问题:
面向对象有哪几个基本特征?前面几章,我们讨论了其中哪几个特征?并解释。
掌握以下知识点:
1.掌握什么是多态?
2.多态分类:编译时多态和运行时多态。在C++中,二者是通过什么来实现的?
*/
/* 本例讲基类与派生类对象间兼容关系 */
#include<iostream>
using namespace std;
/*-------声明基类Base--------- */
class Base{
public:
int i;
Base(int x){ i=x; }
void show()
{ cout<<" Base "<<i<<endl; }
};
/*-----声明公有派生类Derived-----*/
class Derived:public Base{
public:
int y;
Derived(int x,int y1):Base(x){y=y1; }
void show()
{ cout<<" Base, i="<<i<<" derive, y="<<y<<endl; }
};
/*----普通函数,形参为基类对象的引用---*/
void fun(Base &bb)
{ cout<<" i= "<<bb.i<<endl; }
/*-----主函数----*/
int main()
{ Base b1(100);
Derived d1(11,1),d2(22,2),d3(33,3),d4(44,4);
cout<<" 1:********************"<<endl;
b1.show();
cout<<" 2:********************"<<endl;
d1.show();
d1.Derived::show();
d1.Base::show();
cout<<" 3:********************"<<endl;
b1=d1;
b1.show();
Base &b2=d2;
b2.show();
cout<<" 4:********************"<<endl;
Base *bp=&b1;
bp->show();
bp=&d1; //基类指针可以指向公有派生类对象
bp->show();
d1.show();
// bp->Derived::show(); //错误,基类指针可以指向公有派生类对象,但能能访问从基类来的成员成员
cout<<" 5:********************"<<endl;
fun(d4);
// Derived *p2=&b1; //错误,派生类指针不能指向基类对象
system("pause");
return 0;
}
0 0
- 信管14:基类和派生类关系示例代码
- 信管14:类的继承示例代码2
- 信管14:c++:定义对象示例:学生类
- 信管14:多重继承二义性示例代码
- 信管14:多重继承-虚基类示例代码?
- 信管14:虚函数示例代码一
- 信管14:虚函数示例代码二
- 信管14:纯虚函数示例代码
- 派生类和基类的关系
- 基类和派生类的关系
- 信管14:类的继承示代码1
- 信管14:函数重载示例
- 信管14:静态成员函数示例
- 信管14:静态数据成员示例
- 信管14:友元函数示例
- 信管14:对象成员示例
- 信管14:多重继承示例一
- 派生类和基类的关系—类继承
- 两性沟通问题
- TextView的其他使用
- 让使用了SQLite的.NET应用自适应32位/64位系统
- ExtJS5.1学习笔记7——表单的提交和加载
- 虚拟机安装MacOS
- 信管14:基类和派生类关系示例代码
- Template within template: why “`>>' should be `> >' within a nested template argument list” 解决方法
- android json实现网络请求 和普通的http请求 还有https请求安全认证
- malloc/free new/delete
- CAShapeLayer(画图)和CAGradientLayer(颜色渐变)
- php之oop:编程思想从过程到对象
- python14:错误和异常
- vim同时(取消)注释多行文本
- 漫谈IT项目团队管理心得