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

码片段找错解决思路

2012-05-22 
码片段找错谁能帮忙详细解释一下(会引起什么问题)下面代码片段不会引起问题的是()(A)Wrapper& operator

码片段找错
谁能帮忙详细解释一下(会引起什么问题)

下面代码片段不会引起问题的是()
(A)
Wrapper& operator = (Wrapper& obj)
{
if (this->m_pPtr)
  delete m_pPtr;
  m_pPtr = new int;
  *m_pPtr = *obj.m_pPtr;
return *this;
}
(B)
class A
{  
public:
virtual void f();
  A(){f();};
};
(C)
class A
{
};

class B : public A
{
public:
virtual ~B() { //...}
};
(D)
class A
{
Public:
A(int i = 0) { //...}
}
A* p = new A[100];
delete [] p;


[解决办法]
A没有判断那个参数是否就是自身!如果是自身就会引起错误了。
B在构造函数内调用了动态绑定的函数,错误
C既然B类使用了虚析构函数,那么我觉得A必须也使用虚析构函数。

[解决办法]

C/C++ code
  Node & operator=(const Node &n) //operator '=' overload    {        if(this!=&n)        {            if(name!=0)                delete []name;            name=new char[strlen(n.name)+1];            strcpy(name, n.name);            age=n.age;        }        return *this;    } 

热点排行