請問 template 的指針要怎麼寫?解决方法
請問 template 的指針要怎麼寫?
我想要寫像vector 或 CArray 可以用指針宣告
如以下這樣宣告
vector<int>*a;
CArray<string>*b;
不知道怎麼寫
我以為只要寫建構式就好了,可是這樣是不對的
以下是我目前寫的
template <class CType>
class DataArray
{
private:
int Index;
CType *BufArray;
public:
DataArray();
~DataArray(void);
}
template <class CType>
DataArray<CType>::DataArray()
{
Index= 0;
BufArray= new CType [10];
}
template <class CType>
DataArray<CType>::~DataArray()
{
delete BufArray;
}
----------------------------------------------
怎樣寫才能宣告變數
DataArray<int>* a;
再請多多指教,謝謝
------解决思路----------------------
写上分号后编译就没有问题了
------解决思路----------------------
a = new DataArray<int>();
------解决思路----------------------
即便是用标准库里的vecter,也需要这样啊:
vector<int>*a = new vector<int>();
仅仅vector<int>*a;的话,a只是个未初始化的野指针。
------解决思路----------------------
对,就可以了
我想要寫像vector 或 CArray 可以用指針宣告
如以下這樣宣告
vector<int>*a;
CArray<string>*b;
不知道怎麼寫
我以為只要寫建構式就好了,可是這樣是不對的
以下是我目前寫的
template <class CType>
class DataArray
{
private:
int Index;
CType *BufArray;
public:
DataArray();
~DataArray(void);
}
template <class CType>
DataArray<CType>::DataArray()
{
Index= 0;
BufArray= new CType [10];
}
template <class CType>
DataArray<CType>::~DataArray()
{
delete BufArray;
}
----------------------------------------------
怎樣寫才能宣告變數
DataArray<int>* a;
再請多多指教,謝謝
------解决思路----------------------
template <class CType>
class DataArray
{
private:
int Index;
CType *BufArray;
public:
DataArray();
~DataArray(void);
}; //这里少了一个分号
写上分号后编译就没有问题了
------解决思路----------------------
a = new DataArray<int>();
------解决思路----------------------
即便是用标准库里的vecter,也需要这样啊:
vector<int>*a = new vector<int>();
仅仅vector<int>*a;的话,a只是个未初始化的野指针。
------解决思路----------------------
对,就可以了