社区
C++ 语言
帖子详情
我想请问一个c++对象的问题
xuhangtimitimi
2009-02-27 04:27:43
有class A,class B:public Aclass C:public B
这时用C构造一个对象c ,C c,同时会调用类B和A的构造函数,也就是c对象包含a和b,
然后要是再用A a构造一个A的对象,此时岂不是内存中有两份a对象
帮我解释一下好吗
...全文
92
8
打赏
收藏
我想请问一个c++对象的问题
有class A,class B:public Aclass C:public B 这时用C构造一个对象c ,C c,同时会调用类B和A的构造函数,也就是c对象包含a和b, 然后要是再用A a构造一个A的对象,此时岂不是内存中有两份a对象 帮我解释一下好吗
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
passionboy03
2009-02-27
打赏
举报
回复
#include <iostream>
using namespace std;
class A
{
public:
A()
{
cout<<"A()"<<endl;
};
~A()
{
cout<<"~A()"<<endl;
};
};
class B:public A
{
public:
B()
{
cout<<"B()"<<endl;
};
~B()
{
cout<<"~B()"<<endl;
};;
};
class C:public B
{
public:
C()
{
cout<<"C()"<<endl;
};;
~C()
{
cout<<"~C()"<<endl;
};;
};
int main ()
{
C *q = new C();
delete q;
return 0;
}
运行结果:
A()
B()
C()
~C()
~B()
~A()
[Quote=引用楼主 xuhangtimitimi 的帖子:]
有class A,class B:public Aclass C:public B
这时用C构造一个对象c ,C c,同时会调用类B和A的构造函数,也就是c对象包含a和b,
然后要是再用A a构造一个A的对象,此时岂不是内存中有两份a对象
帮我解释一下好吗
[/Quote]
liuwg9999
2009-02-27
打赏
举报
回复
比如父亲是双眼皮,儿子继承了父亲的双眼皮,构造儿子的时候只是用了父亲双眼皮的这个基因,但并不在构造一次父亲,不知道这样理解对不对呢
疯哥哥
2009-02-27
打赏
举报
回复
"也就是c对象包含a和b" //c 是一个a,是一个b,但不是包含关系.
两个A的对象没有问题啊.对象是可以有多个的.楼主对类和对象的理解有误.
类是一个概念.对象是类的一个实例化.
把人类看作一个类,那么你和我,大家,任何一个人,都是这个类的对象啊..
class man
{
...
};
man you;
man he;
//you 和 he 都是man对象.
SendDlgItem
2009-02-27
打赏
举报
回复
怎么会这样理解呢??
继承只是子类可以调用父类的函数以及一些变量
并不是包含··
jqx_ah
2009-02-27
打赏
举报
回复
不是你那样理解的
再说建立两队对象 也不是不可能
xuhangtimitimi
2009-02-27
打赏
举报
回复
is-a, has-a
xuhangtimitimi
2009-02-27
打赏
举报
回复
好像是的
hhyttppd
2009-02-27
打赏
举报
回复
is-a, has-a不要搞错
【
C++
】使用 yaml-cpp 库操作 YAML
配置文件有利于我们灵活配置工程,解决大量重复劳动,也方便调试。YAML 是一种人类可读的数据序列化格式,它使用缩进和特定的符号来表示数据结构。在本文中,我们将详细介绍如何在
C++
中使用yaml-cpp库来解析和生成 YAML 格式的数据。
C++
中的 .h 和 .cpp 详解
通俗解释:.h和.cpp差不多就像书和目录的关系吧,目录中对书中的章节和内容进行简单表示,真正的实现是在书里面的。 一般的数据,数据结构,接口,还有类的定义放在.h文件中,可以叫他们头文件,可以#include 到别的文件中。功能实现一般都放在具体的.cpp文件中,这样方便文件管理,节约时间,提高效率。 你完全可以把功能实现一并放在.h文件中,也可以#include
一个
.cpp文件到另
一个
源文件中...
Cpp入门基础
定义命名空间,需要使⽤到namespace关键字,后⾯跟命名空间的名字,然后接⼀对{}即可,{}中 即为命名空间的成员。命名空间中可以定义变量/函数/类型等。namespace本质是定义出⼀个域,这个域跟全局域各⾃独⽴,不同的域可以定义同名变量,所以下 ⾯的rand不在冲突了。
C++
中域有函数局部域,全局域,命名空间域,类域;域影响的是编译时语法查找⼀个变量/函数/ 类型出处(声明或定义)的逻辑,所有有了域隔离,名字冲突就解决了。
【Cpp】类和
对象
类的认识,类和
对象
(一)
【
c++
】cpp类和
对象
c++
中类和
对象
基本用法
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章