• 5889阅读
  • 4回复

于拷贝构造函数的问题 [复制链接]

上一主题 下一主题
离线lee51525125
 
只看楼主 正序阅读 楼主  发表于: 2009-03-19
class A{
public :
A(A*parent=0){
parent=0;
};
int memeber;
};

class B:public A
{
public:
B(A *parent=0);
B(B& b);
};
B::B(A *parent):
A(parent)
{

}
B::B(B& b)
{//21 行
memeber=b.memeber;
}
报错:
yy.cc: In copy constructor `B::B(B&)':
yy.cc:21: warning: base class `class A' should be explicitly initialized in the
  copy constructor

具体是我继承了qt的QGraphicsItem 他的copy constructor 是private的 也有同样的问题
离线foxyz

只看该作者 4楼 发表于: 2009-03-24
en,
我没说清楚!
我要说的是:有这样的拷贝构造函数吗?
QWidget ( QWidget * parent = 0, Qt::WindowFlags f = 0 )  不是拷贝构造函数。
explicit也就是为了防止单参数的隐性转换
离线codespy
只看该作者 3楼 发表于: 2009-03-23
B::B(A *parent):
A(parent)
{

}
B::B(B& b)
:A(&b) //21 行
{
memeber=b.memeber;
}
-------
这个不属于Qt论坛的问题-_-
离线浪漫天使
只看该作者 2楼 发表于: 2009-03-23
有的吧
QWidget(QWidget *parent=0);应该算这样的类型吧。
不过人家前面加了explicit 你也加上看看。
离线foxyz

只看该作者 1楼 发表于: 2009-03-23
楼主写的类有点雷人,建议去看看C++的入门书籍.

class A{
public :
A(A*parent=0){   //有这样的构造函数吗?,我反正从来没用到过。
parent=0;
};
int memeber;
};

class B:public A
{
public:
B(A *parent=0);
B(B& b);
};
B::B(A *parent):  A(parent)
{

}
B::B(B& b)
{//21 行
memeber=b.memeber;
}
快速回复
限100 字节
 
上一个 下一个