社区
C++ 语言
帖子详情
C++类有两个构造函数,相互调用,怎么写?
lcb
2011-10-12 03:17:01
ClassTest::ClassTest() {
m_name="test";
}
ClassTest::ClassTest(char* filename) {
ClassTest();
}
两个构造函数,无参数的那个实现一些基础功能。有参数的那个执行时同样要实现ClassTest()已经实现了的功能,要怎么写?我上面这样写好像会引起一些内存错误。
...全文
666
13
打赏
收藏
C++类有两个构造函数,相互调用,怎么写?
ClassTest::ClassTest() { m_name="test"; } ClassTest::ClassTest(char* filename) { ClassTest(); } 两个构造函数,无参数的那个实现一些基础功能。有参数的那个执行时同样要实现ClassTest()已经实现了的功能,要怎么写?我上面这样写好像会引起一些内存错误。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
星羽
2011-10-13
打赏
举报
回复
[Quote=引用 7 楼 vilnies 的回复:]
额外写一个Init()函数不就简单多了。
[/Quote]
这么做可以,不少工程都是这么干的,一个init 一个destroy
星羽
2011-10-13
打赏
举报
回复
ClassTest::ClassTest(char* filename) {
ClassTest(); // 这其实是构造了个临时对象= =
}
ri_aje
2011-10-13
打赏
举报
回复
[Quote=引用 8 楼 mingliang1212 的回复:]
ClassTest::ClassTest(char* filename) {
ClassTest tmp;
...
this->swap(tmp);//这个swap是自己定义的交换资源用的函数。
}
[/Quote]
这个主意不好,swap 通常要求需要交换的两个对象都是构造完全的,在 this 的构在函数里,this 本身还是一个正在构造的对象。
only_lonely
2011-10-12
打赏
举报
回复
C++11才能像初始化列表一样调用构造函数吧?
为什么不把两个构造函数间的类似代码抽象到一个inline的函数中呢?
zzhen201
2011-10-12
打赏
举报
回复
建立一个私有的初始化函数就可以了吧,
iamnobody
2011-10-12
打赏
举报
回复
ClassTest::ClassTest(char* filename) {
ClassTest tmp;
...
this->swap(tmp);//这个swap是自己定义的交换资源用的函数。
}
vilnies
2011-10-12
打赏
举报
回复
额外写一个Init()函数不就简单多了。
jhzlf
2011-10-12
打赏
举报
回复
构造函数调用构造函数?
你那么写会产生一个临时变量
不建议这么写,公共部分提出来作为一个单独的函数多好
非要写用2楼的。。。
pengzhixi
2011-10-12
打赏
举报
回复
你还打算相互调用?然后陷入死循环?
ri_aje
2011-10-12
打赏
举报
回复
在 C++03 中无法实现,C++11 中增加了一个 delegate constructor 的概念,用起来就像初始化列表一样,你的编译器要是支持 C++11 的这个特性,可以试一下,否则没办法。
pengzhixi
2011-10-12
打赏
举报
回复
你在第2个构造函数里面调用第一个构造函数来构造一个临时对象是干什么呢?
阿白hhh
2011-10-12
打赏
举报
回复
用初始化列表调用
iamnobody
2011-10-12
打赏
举报
回复
应该不会吧:
ClassTest::ClassTest(char* filename) {
this->ClassTest();
}
C++
两个
类
相互
调用
这篇博客探讨了
C++
中
两个
类如何
相互
调用
,特别是在头文件
相互
引用的情况下。文章详细解释了如何在类A中使用类B的指针,并在类B中同样引用类A的指针,实现类间的交互操作。
【
C++
】
两个
类的
相互
引用
本文探讨了
C++
中
两个
类
相互
引用时的解决方案,包括使用指针与前置声明的方法,并给出了不同文件间的正确实现。
C++
两个
类互相
调用
彼此的方法
本文介绍了一种在
C++
中避免类间循环引用的方法:通过类的前置声明使用指针或引用。文中提供了详细的代码示例,展示了如何在
两个
相互
依赖的类中正确地进行互相
调用
。
C++
类的
构造函数
本文详细介绍了
C++
中的
构造函数
,包括其作用、特性及默认
构造函数
的功能。
构造函数
主要用于对象初始化,无返回值且在对象创建时自动
调用
。
C++
提供无参
构造函数
,当用户自定义
构造函数
时,编译器不再生成默认
构造函数
。此外,文章还讨论了默认
构造函数
与无参
构造函数
的关系,强调了两者不能同时存在。最后,通过示例展示了如何使用默认值初始化类的成员变量。
C++
两个
类
相互
调用
实现
本文介绍了一种在
C++
中解决
两个
类互相
调用
时出现的循环引用问题的方法,通过使用类的前置声明和指针引用,避免了直接包含头文件导致的编译错误。
C++ 语言
65,213
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章