首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

输出有关问题

2012-03-02 
输出问题classA{public:A(){m_pDataNULL};A(LPSTRp)//这个地方总是报错{intnstrlen(p)m_pDatanewchar

输出问题
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;
}

热点排行