究竟是什么(*),你如何施展它?
"error C2440: '=' : cannot convert from 'char *[]' to 'char (*)[]'"
尝试让SmartPointer获取数组值。标题:
template <typename T> class SmartPointer
{
private:
T* myPtr;
int* count;
public:
T* Value();
SmartPointer(const SmartPointer<T>& a)
{
myPtr = a.myPtr;
count = a.count;
++*count;
}
SmartPointer(T* ptr);
SmartPointer(T value) { myPtr = &value; count = new Int(); ++*count; }
~SmartPointer();
void operator =(T a);
operator T*();
T* operator ->();
};
相关致电热线:
SmartPointer<char[]> str = SmartPointer<char[]>(new char[20]);
答案 0 :(得分:3)
char*[]
是char*
的数组,而char(*)[]
是指向char
数组的指针。
有关详细信息,请参阅this question。
答案 1 :(得分:3)
我不熟悉这门课,但我认为你想要:
SmartPointer<char> str = SmartPointer<char>(new char[20]);
或者可能:
SmartPointer<char> str = new char[20];
答案 2 :(得分:0)
在一般情况下,您可以使用名为cdecl
(available on the web)的程序告诉您,或use these fun rules自行解码类型。