拷贝构造函数能被自动继承吗?

APIandMFC 2008-10-21 09:46:34
拷贝构造函数能被自动继承吗?

如果说一个函数"能被自动继承",说明什么?

如果说一个函数"不能被自动继承",说明什么?
...全文
658 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
changbaolong 2011-08-31
  • 打赏
  • 举报
回复
"自动继承",你的意思应该就是继承。
不可以继承,但是必须显示调用基类的拷贝构造函数,否则,在调用基类的构造函数时,会默认自动调用默认构造函数。

其实,凡是带有参数的构造函数,都必须显示调用基类对应的构造函数,否则,情况同上。
iambic 2008-10-23
  • 打赏
  • 举报
回复
赞。那么多类似的问题之中,楼主是我见过的第一个自己就尝试先理清概念的人。
太乙 2008-10-23
  • 打赏
  • 举报
回复
不能~~
l176266956 2008-10-23
  • 打赏
  • 举报
回复
拷贝函数不能被继承,
但是当派生类自己定义拷贝函数时,要调用基类的拷贝函数。
除了上述情况,派生类的其它成员函数无法使用基类的拷贝函数。
这和继承是有区别的。
snailman 2008-10-23
  • 打赏
  • 举报
回复
什么叫自动继承 ???
taodm 2008-10-23
  • 打赏
  • 举报
回复
基类的一切东西都被继承了。
只是“能不能访问”问题而已。
比如private的东西被继承了,但是还是无法被访问。
拷贝构造函数等几个特殊函数,因为派生类里自己会合成默认版本,所以被覆盖了,还是无法直接访问。
自动合成的版本会自动转调用基类版本。自己实现的版本,则必须自己以明确的方法手工调基类版本。

你用错了一个“专有名词”,所以无法知道你得到问的是哪个话题。
overbai 2008-10-23
  • 打赏
  • 举报
回复
构造函数不能继承!只可以在初始化成员列表中显示的调用!
ViCross 2008-10-22
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 nickywang2004 的回复:]
在写子类拷贝构造函数的时候
好像应该调用父类拷贝构造函数才是安全的
[/Quote]
为什么"好像",
ViCross 2008-10-22
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 nickywang2004 的回复:]
在写子类拷贝构造函数的时候
好像应该调用父类拷贝构造函数才是安全的
[/Quote]
为什么"好像",
nickywang2004 2008-10-22
  • 打赏
  • 举报
回复
在写子类拷贝构造函数的时候
好像应该调用父类拷贝构造函数才是安全的
比如
class A
{
public: A(A &a){...}
}
class B:public A
{
public: B(B &b):A(b){ ...}
}
o0l1z2 2008-10-22
  • 打赏
  • 举报
回复
不会的
chenzhp 2008-10-22
  • 打赏
  • 举报
回复
不会的
ViCross 2008-10-22
  • 打赏
  • 举报
回复
构造函数只有自动生成(合成), 没有什么自动继承.
如果想明白了这个, 再想想为啥Java不用像C++这样自动合成构造函数.
matrixdwy 2008-10-21
  • 打赏
  • 举报
回复
不会被继承的函数有:
构造函数,析构函数,operator=
plusbug 2008-10-21
  • 打赏
  • 举报
回复
#include <iostream>
using namespace std;
class A
{
public:
A(){cout<<"Do A\n";}
};
class B:public A
{
public:
B()
{cout<<"Do B\n";}
};
void main()
{
B T;
}

结果是 Do A
Do B
基类的构造函数和析构函数在你创建派生类时会自动调用(不知道你说的自动继承是不是这个意思)
调用的顺序是
1.创建 派生类 2.调用基类的构造函数(有多个基类时按照定义顺序调用,不能太确定这点)3.调用继承类的构造函数 4.调用继承类的析构函数 5.调用基类的析构函数 (好像就是 堆栈原理)

三文鱼也会飞 2008-10-21
  • 打赏
  • 举报
回复
不能
zgjxwl 2008-10-21
  • 打赏
  • 举报
回复
首先,构造函数是不能被继承的,而拷贝构造函数是构造函数的一个特例,所以也应该不能被继承
insuya 2008-10-21
  • 打赏
  • 举报
回复
构造函数不能被继承
Greg_han 2008-10-21
  • 打赏
  • 举报
回复
不能
arong1234 2008-10-21
  • 打赏
  • 举报
回复
什么叫自动继承?所有基类的函数都可以被派生类继承,没有听说过自动或者不自动的方式。如果你说如果派生类是拷贝构造的,那么基类是否也会在这个过程中自动被拷贝构造,则情况如下:如果你自己定义了派生类的拷贝构造,则基类的不会被自动调用,如果你派生类没有定义拷贝构造,可能是自动调用的,不过得试试。

BTW:从来没有听说过所谓得“自动继承”得概念,在哪看到得?
加载更多回复(3)

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧