Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么我得到{error:2061标识符{ctor_C++ - Fatal编程技术网

C++ 为什么我得到{error:2061标识符{ctor

C++ 为什么我得到{error:2061标识符{ctor,c++,C++,在头文件中: #ifndef Array_h #define Array_h #include "stdafx.h" using namespace std; template<class T> class Arrayc { private: int Arraysize; int length; T *array; public: Arrayc(int size); ~Arrayc(); }; template<class T

在头文件中:

#ifndef  Array_h
#define  Array_h

#include "stdafx.h"

using namespace std;

template<class T>
class Arrayc
{ 
private:
    int Arraysize;
    int length;
    T *array;
public:
    Arrayc(int size);
    ~Arrayc();
};
template<class T>
Arrayc<T>::Arrayc(int size)
{
    Arraysize = size;
    length = 0;
    array = new T[Arraysize];
}
#endif 
#ifndef数组
#定义数组
#包括“stdafx.h”
使用名称空间std;
模板
类Arrayc
{ 
私人:
内部阵列化;
整数长度;
T*阵列;
公众:
Arrayc(int-size);
~Arrayc();
};
模板
Arrayc::Arrayc(整数大小)
{
数组化=大小;
长度=0;
数组=新的T[Arraysize];
}
#恩迪夫
在主源文件中:

Arrayc<int> *Arrayofintegers;
Arrayc<float> *Arrayoffloat;
// These lines have the error
Arrayofintegers = new Arrayc<int>::Arrayc(10);
Arrayoffloat = new Arrayc<float>::Arrayc(5);  
Arrayc*Arrayofintegers;
Arrayc*Arrayoffloat;
//这些行有错误
Arrayofintegers=newArrayC::Arrayc(10);
Arrayoffloat=新的Arrayc::Arrayc(5);

在使用构造函数时,您没有向构造函数传递任何关于您希望T是什么的线索。我建议在构造函数中添加一个参数T,即使您仅将其用作虚假的初始值设定项,这样编译器就可以推断Arrayc()将是什么类型,例如,
新Arrayc(10,0)
新Arrayc(10,0.0f)

定义构造函数时,只需指定作用域名称,
Arrayc::Arrayc

要调用构造函数,只需使用
Arrayc(/*args*/)


当然,您甚至根本不需要
new
,但这与错误无关。

构造函数本身不是一个模板。我建议将其修复为
new Arrayc(10)
new Arrayc(5)
模板工厂。