设置类实例的变量

时间:2019-04-03 17:01:33

标签: c++

我以以下课程为例:

#include <iostream>

class MyClass {
 private:
  double value{0};

 public:  
  explicit MyClass(double value) : value(value){};

  MyClass(const MyClass&) = delete;
  MyClass(MyClass&&) = delete;
  MyClass& operator=(MyClass&&) = delete;

  double getValue(){return value;}
};

int main(void){
    MyClass c1(100.0);               // Version 1
    MyClass c2 = MyClass(200.0);     // Version 2

    std::cout << c1.getValue() << std::endl;
    std::cout << c2.getValue() << std::endl;

}

我了解到// Version 1中的// Version 2是更可取的,因为// Version 2调用了复制构造函数。

这就是为什么我删除了复制构造函数,而// Version 2仍然有效的原因。因此,不会调用任何副本构造函数。

哪个MyClass运算符由// Version 2调用?

为什么// Version 1// Version 2更可取?

0 个答案:

没有答案