c++ - 使用过多的功能

标签 c++ function c++11

<分区>

我正在读一本书,其中一个窗口类的构造函数没有直接初始化所有实现,而是调用一个调用另一个函数的函数等等...

例如

window::window(T&t, X&x)
{ setup(t, x);}

void window::setup(T&t, X&x)
{
//initializing implementation details, size, title etc...
create(t, x);

void window::create(T&t, X&x)
{
//initializing the library Window
//...
}

与析构函数相同,调用一个 destroy() 函数,而不是在析构函数本身中这样做。

它只是风格问题还是有任何实际用途?

最佳答案

如果成员的初始化是作为函数实现的,那么该函数可以在多个构造函数中重复使用。公共(public)初始化函数允许默认构造函数将对象保留在可以稍后初始化的部分初始化状态。这可以允许一个类是 DefaultConstructible,如果它不可能,同时仍然提供使用非默认构造函数进行完全初始化的选项。

实现一个销毁函数,并在析构函数中调用它,可以让对象的使用者在销毁对象之前释放对象管理的资源。这允许使用多组资源重用对象内存(一个小的优化)。

关于c++ - 使用过多的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41446527/

相关文章:

c++ - 成员右值引用和对象生命周期

c++ - QByteArray 获取第n个元素的地址

c++ - Clang 4.6.2,使用 shared_ptr

c++ - C++11 中的原始指针与智能指针

python-3.x - Python 中函数连续性的问题

c++ - 如何正确推断模板的返回类型?

c++ - 关于为什么字符串在\0的第一个实例上被截断的问题

javascript - 如何使用javascript在一段时间后将CSS显示从可见更改为不可见

C++ 在内存地址读取一些字节,输出为字符串

当子类没有使用另一个宏时 C++ 宏失败