【问题标题】:(C++) Copy constructor without parameter argument name(C++) 没有参数参数名称的复制构造函数
【发布时间】:2021-05-31 22:34:37
【问题描述】:

我在弄清楚某些类型的构造函数如何在 C++ 中工作时遇到了一些麻烦。 我得到了一个名为 Vector 的示例类,它看起来像这样:

class Vector {
   double* vData;
   size_t n_element;
   static size_t defS;
public:
   //bunch of other constructors and this one:
   Vector(const Vector&);
}

据我所知,这是一个复制构造函数,但没有名称,我如何访问传递的 Vector 变量和函数? 我认为它通常以这样的方式声明:

向量(const Vector& obj);

那么有什么区别,在第一种情况下如何访问对象变量?

【问题讨论】:

标签: c++ copy-constructor


【解决方案1】:

Vector(const Vector&);是构造函数的声明,与Vector(const Vector& obj);含义相同。

您应该在定义构造函数接收值时指定参数名称:

Vector::Vector(const Vector& v) {
    // do something using v
}

【讨论】:

    【解决方案2】:

    这个

    Vector(const Vector&);
    

    仅仅是方法的声明。即使添加了参数的名称,您也无法“访问”它,因为声明没有正文。参数名称在声明中是可选的。

    在定义上你照常使用名称:

    Vector::Vector(const Vector& other) {
         // use other 
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-14
      相关资源
      最近更新 更多