【问题标题】:Error when try to initiate a class with vector<int> in a constructor尝试在构造函数中使用 vector<int> 启动类时出错
【发布时间】:2015-03-25 20:03:00
【问题描述】:

考虑以下代码:

#include <vector>
using namespace std;    
class DummyClass
{
public:
    DummyClass(){};
    DummyClass( int x ){}
    DummyClass (vector<int> array){}
};
int main()
{
    DummyClass(); // compiles
    DummyClass(5); // compiles
    vector<int> array;
    DummyClass obj = DummyClass( array );//compiles
    //DummyClass( array );// doesn't compile

}

为什么最后一行无法编译?错误:使用不同类型重新定义“数组”:“DummyClass”与“向量”

【问题讨论】:

  • 您将走到编译器允许的“有效”代码的边缘,但是其中只有一个定义是您应该使用的形式。
  • 因为正如编译器所说,DummyClass(array); 是一个声明,其语法来自 C,并且我没有遇到有意使用的代码。

标签: c++ vector constructor compiler-errors


【解决方案1】:

根据语法,最后一个编译失败的例子和DummyClass array;一样,重新声明了变量array。我想你的意思是DummyClass obj2(array);

【讨论】:

  • DummyClass{array};
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-28
  • 2015-03-09
  • 2013-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多