输出问题
class A
{
public:
A()
{
m_pData = NULL;
};
A(LPSTR p) //这个地方总是报错
{
int n = strlen(p);
m_pData = new char[n+1];
memset(m_pData, 0, n+1);
memcpy(m_pData, p, n);
printf( "Data=%d,Len =%d\n ", m_pData, n);
};
~A()
{
delete[] m_pData;
};
private:
char * m_pData;
}
int main()
{
A* pObj1 = new A( "ABC ");
A* pObj2 = pObj1;
A aObj1( "DEF ");
A aObj2=aObj1;
delete pObj2;
}
//我想知道这个程序的输出结果,但是运行总是无法通过,请帮忙修改,谢谢!
[解决办法]
class A
{
public:
A()
{
m_pData = NULL;
}
A(char* p)
{
int n = strlen(p);
m_pData = new char[n+1];
memset(m_pData, 0, n+1);
memcpy(m_pData, p, n);
printf( "Data=%d,Len =%d\n ", m_pData, n);
}
A(const A& c)
{
int n = strlen(c.m_pData);
m_pData = new char[n+1];
memset(m_pData, 0, n+1);
memcpy(m_pData, c.m_pData, n);
printf( "Data=%d,Len =%d\n ", m_pData, n);
}
~A()
{
delete[] m_pData;
}
private:
char * m_pData;
};
int main()
{
A* pObj1 = new A( "ABC ");
A* pObj2 = pObj1;
A aObj1( "DEF ");
A aObj2=aObj1;
delete pObj2;
}