社区
C++ 语言
帖子详情
一本书上写了:派生类对象可以看作基类的对象 ,这是什么意思呢?
joeqi
2003-11-09 09:54:12
派生类对象可以看作基类的对象 ,这是什么意思呢?
...全文
760
11
打赏
收藏
一本书上写了:派生类对象可以看作基类的对象 ,这是什么意思呢?
派生类对象可以看作基类的对象 ,这是什么意思呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hatia
2003-11-18
打赏
举报
回复
所谓的up_cast,派生类可向上类型转换,当不是纯的继承时则使派生类的接狭窄化;
涉及到对象切片的问题;在多态中,通过虚函数和基类接口实现对同一层次的类用相同的接口;
THINKING IN C++中有的
zhy0101
2003-11-16
打赏
举报
回复
就是把派生类对象当作基类对象来用。对基类对象调用什么就对派生类对象调用什么,不包括基类私有成员
zcs001
2003-11-16
打赏
举报
回复
这就是所谓的is-a关系
tianxueshan
2003-11-10
打赏
举报
回复
我们知道在面向对象的编程过程中很重要的一点就是代码的重用问题。在继承和派生中。
派生类细化的父类的定义。在C++中有一个切片的概念。也就是说派生类对象在赋值给父类对象的过程中。派生类多余的部分会被切去。只保留父类的部份。因为派生类继承了父类的几乎所有的成员。
我们知道。编绎系统区别对象的方法就是为数据成员分配一定的内存。函数部份则是共享。
所以可以把派生类的对象看成基类的对象。
adams_here
2003-11-10
打赏
举报
回复
派生类对象可以看作基类的对象
这句话可以理解为基类有的(非private)成员变量/成员函数,派生类都有。
adams_here
2003-11-10
打赏
举报
回复
“基类指针可以操作派生类对象”
派生类可以有自己的member,用基类指针操作这些member编译不会通过。
woxihuanbohe
2003-11-10
打赏
举报
回复
为什么用基类指针就可以操作派生类对象呢?
Jinhao
2003-11-10
打赏
举报
回复
说白了就是,用基类指针可以操作派生类对象
bosedom
2003-11-10
打赏
举报
回复
派生类的对象所占的存储空间要比基类的对象大,原因就是派生类继承了基类非私有成员函数和数据。当用基类的指针操纵派生类的对象时,由于对象的头部分是一样的,所以即使有超出基类指针所寻址的部分也能根据偏移量正确寻址。但相反,如果派生类指针指向基类对象,会把一部分不属于的该对象的内存也包括进来。所以派生类指针指向基类对象使用派生类的函数可能会有严重的错误
Wolf0403
2003-11-10
打赏
举报
回复
class Human{virual ~Human(); virtual void Speak() const;}
class Man : public Human {void Speak() const;}
男人还是人,是吧?呵呵。所以可以把男人当人来用
Human * p = new Man;
假设有方法
void SpeakSomething(const Human& _man)
{
_man.Speak();
}
就可以传递 *p 进去。这样就是把 Man 当作 Human 对象使用
bosedom
2003-11-09
打赏
举报
回复
可以用基类的指针指向派生类的对象。这样就可以运用C++中多态的性质。基类的public 和protected的成员函数和成员变量都可以在这个派生类的对象中使用。当然子类可以覆盖。
浅谈C++中
派生
类
对象
的内存布局
派生
类可以
看作
是完整的
基类
的Object再加上
派生
类自己的Object。如果
基类
中没有虚成员函数,那么
派生
类与具有相同功能的非
派生
类将不带来任何性能上的差异。另外,一定要保证
基类
的完整性。实际内存布局由编译器自己...
基类
对象
与
派生
类
对象
的关系
点击打开原文链接
基类
对象
与
派生
类
对象
的使用关系1.
派生
类
对象
作为
基类
对象
处理由于
派生
类具有所有...2.
基类
指针指向
派生
类
对象
因为
派生
类
对象
也是
基类
对象
,所以指向
派生
类
对象
的指针可以转换为指向
基类
对象
的...
基类
指针指向
派生
类
对象
派生
类
对象
可以当做
基类
对象
,
这是
因为
派生
类包含
基类
的所有成员。 但是
基类
对象
无法被当做成
派生
类
对象
,因为
派生
类可能具有只有
派生
类才有的成员。 所以,将
派生
类指针指向
基类
对象
的时候要进行显示的强制转换,...
C++中
派生
类
对象
转换为
基类
对象
1、
派生
类
对象
给
基类
对象
赋值 2、
派生
类
对象
初始化
基类
对象
的引用 3、令
基类
的指针指向
派生
类
对象
#include<iostream> using namespace std; class Shape{ //
基类
public: void draw(){ cout << "Draw...
派生
类与
基类
指针指向
派生
类和
基类
的关系并不是两个独立的类型,在
派生
关系中,
派生
类型...在C++语法里规定:
基类
指针可以指向一个
派生
类
对象
,但
派生
类指针不能指向
基类
对象
。用问题里的例子来说 DerivedClass is a BaseClass
派生
类型...
C++ 语言
65,210
社区成员
250,518
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章