error C2248 cannot access private member declared in class解决思路
error C2248 cannot access private member declared in class
编译器-VC8
class CMultiString
{
private:
int ElementsCount;
int GroupSize;
TCHAR ** p;
TCHAR *temp;
CMultiString(); //构造函数声明
~CMultiString(); //析购函数声明
};//end class
inline CMultiString::CMultiString()
{
ElementsCount=0;
p=NULL;
temp=NULL;
GroupSize=512 * sizeof(TCHAR * );
p=(TCHAR ** )malloc(GroupSize);
}
inline CMultiString::~CMultiString()
{
for(int i=0;i <ElementsCount;++i)
{
free( (TCHAR *) *(p+i) );
}
free( p );
}
编译出现两个错误:
错误error C2248: 'CMultiString::CMultiString ' : cannot access private member declared in class 'CMultiString '
错误error C2248: 'CMultiString::~CMultiString ' : cannot access private member declared in class 'CMultiString '
我试着把构造、析构函数声明放入公有成员,编译通过。可我记得书上说构造、析构函数可以放入私有成员中的,不知为什么会出错,晕...
------解决方案--------------------
构造函数要public
------解决方案--------------------
class CMultiString
{
private:
编译器-VC8
class CMultiString
{
private:
int ElementsCount;
int GroupSize;
TCHAR ** p;
TCHAR *temp;
CMultiString(); //构造函数声明
~CMultiString(); //析购函数声明
};//end class
inline CMultiString::CMultiString()
{
ElementsCount=0;
p=NULL;
temp=NULL;
GroupSize=512 * sizeof(TCHAR * );
p=(TCHAR ** )malloc(GroupSize);
}
inline CMultiString::~CMultiString()
{
for(int i=0;i <ElementsCount;++i)
{
free( (TCHAR *) *(p+i) );
}
free( p );
}
编译出现两个错误:
错误error C2248: 'CMultiString::CMultiString ' : cannot access private member declared in class 'CMultiString '
错误error C2248: 'CMultiString::~CMultiString ' : cannot access private member declared in class 'CMultiString '
我试着把构造、析构函数声明放入公有成员,编译通过。可我记得书上说构造、析构函数可以放入私有成员中的,不知为什么会出错,晕...
------解决方案--------------------
构造函数要public
------解决方案--------------------
class CMultiString
{
private: