我自定义了一个类,
class MyClass
{
public:
int member;
};然后用它定义了一个数组,
CArray<MyClass,MyClass> Mine;在用Mine.Add()编译没法通过,代码如下:
MyClass test;
test.member=4;
Mine.Add(test);请问是怎么回事啊?如何更正?谢谢
class MyClass
{
public:
int member;
};然后用它定义了一个数组,
CArray<MyClass,MyClass> Mine;在用Mine.Add()编译没法通过,代码如下:
MyClass test;
test.member=4;
Mine.Add(test);请问是怎么回事啊?如何更正?谢谢
应该改为CArray<MyClass,MyClass&> Mine;但是当类中含有数组时还是不行
换成结构也不行struct MyStruct
{
CArray<double,double> w;
};CArray<MyStruct,MyStruct&> Mine;
MyStruct s;
s.w.Add(1.2);
s.w.Add(2.3);
Mine.Add(s);在编译的时候出现错误:
c:\program files\microsoft visual studio\vc98\mfc\include\afxtempl.h(255) : error C2558: struct 'CMyStruct' : no copy constructor available c:\program files\microsoft visual studio\vc98\mfc\include\afxtempl.h(1566) : while compiling class-template member function 'struct CMyStruct __thiscall CArray<struct CMyStruct,struct CMyStruct &>::GetAt(int) const'
Error executing cl.exe.
class MyClass
{
MyClass();
~MyClass();
public:
int member;
};
test.member=4;
Mine.Add(test);
局部变量,会DESTROY的.class MyClass
{
public:
int member;
};然后用它定义了一个数组,
CArray<MyClass*,MyClass*> Mine;在用Mine.Add()编译没法通过,代码如下:
MyClass* test = new MyClass;
test->member=4;
Mine.Add(test);