首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在构造函数中处理'this‘指针?

如何在构造函数中处理'this‘指针?
EN

Stack Overflow用户
提问于 2010-03-25 02:47:17
回答 4查看 5.5K关注 0票数 19

我有在构造函数中创建其他子对象的对象,传递'this‘,这样子对象就可以保存回其父对象的指针。我在编程中广泛使用boost::shared_ptr作为std::auto_ptr或原始指针的更安全的替代方案。因此,子进程会有诸如shared_ptr<Parent>之类的代码,boost提供了父进程可以提供给子进程的shared_from_this()方法。

我的问题是,shared_from_this()不能在构造函数中使用,这并不是真正的犯罪,因为无论如何都不应该在构造函数中使用'this‘,除非你知道自己在做什么,并且不介意限制。

谷歌的C++风格指南states指出,构造函数只应将成员变量设置为其初始值。任何复杂的初始化都应该在显式的Init()方法中进行。这解决了“This -in-constructor”问题以及其他一些问题。

让我感到困扰的是,现在使用您的代码的人必须记住,每次构造您的对象时都要调用Init()。我能想到的唯一方法是通过断言,在每个成员函数的顶部已经调用了Init(),但这是乏味的编写和繁琐的执行。

在这个过程中,有没有什么习惯用法可以解决这个问题?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2510521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档