【发布时间】: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