c++ - cpp 文件中的内联构造函数和析构函数

标签 c++

尽管问题听起来很奇怪,我的意思是当一个类仅在 cpp 文件中定义时,因为它更多的是用于实现另一个类的辅助类,并且不值得位于其私有(private)部分中。我知道内联构造函数和析构函数是一种不好的做法,但是这种情况怎么样,如下所示?非常感谢

编辑:我应该重新措辞。在某些情况下,内联构造函数和析构函数会导致代码意外膨胀(如《Effective C++ Item 30,“了解内联的来龙去脉”中所述)》。但是我想知道这种内联是否也导致了这种情况

    // my_class.cpp
    #include <my_class.h>

    namespace {
        class Helper
        {
            public: 
                Helper() {...} // should I inline the constructor here?
                ~Helper() {...} // should I inline the destructor here? 
        };

        /* alternative implementation looks like
        Helper::Helper()
        {...}

        Helper::~Helper()
        {...}
        */
    } // end of anonymous namespace

    // implementation of my_class

最佳答案

这可能是一个有争议的问题。另议here很好地讨论了这一点。基本的要点是,编译器可能会忽略您的“内联”,或者可能选择在没有您输入的情况下“内联”函数/构造函数/任何内容。内联命令只是一个编译器可以忽略的建议。

TL;DR 努力吧;这可能不会有什么不同。

关于c++ - cpp 文件中的内联构造函数和析构函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33905871/

相关文章:

c++ - 使用 fstream 将文件读入单独的变量最有效

c++ - 如何正确编译并执行 TensorFlow C++ API 示例?

c++ - vector 元素和 txt 文件行之间的字符串比较不起作用

c++ - 调用重写函数并使用基类中的重载变量

c++ - c++ w/SFML 中的程序不能正常工作,移动算法

c++ - 检查容器模板类中的迭代器类型

c++ - 如何将 QML 文件分配给 MainWindow/Application

c++ - Yaml-cpp:在发射器中的每个新 map 之前禁用自动 begindoc (---)

c++ - GCC 中的 unordered_map 错误

c++ - extern 和 extern "C"用于变量