相关疑难解决方法(0)

复制初始化和直接初始化之间有区别吗?

假设我有这个功能:

void my_test()
{
    A a1 = A_factory_func();
    A a2(A_factory_func());

    double b1 = 0.5;
    double b2(0.5);

    A c1;
    A c2 = A();
    A c3(A());
}
Run Code Online (Sandbox Code Playgroud)

在每个分组中,这些陈述是否相同?或者在某些初始化中是否有额外的(可能是可优化的)副本?

我见过有人说过这两件事.请引用文字作为证据.还请添加其他案例.

c++ initialization

230
推荐指数
5
解决办法
5万
查看次数

什么时候应该使用直接初始化和复制初始化?

它只是偏好还是有特定的情况,其中一个是必要的而不是另一个?我正在参考以下变体进行初始化

T t(e); // direct initialization
T t = e; // copy initialization
Run Code Online (Sandbox Code Playgroud)

c++ explicit-constructor implicit-conversion copy-initialization

14
推荐指数
2
解决办法
5440
查看次数