由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 发现一个有趣的现象。
相关主题
*(&b1)=b编译不过,b1=b可以,区别是?C++ pointer to function is buggy
再一个问题c++问个函数指针指向操作符的问题
friend function 不能virtual 怎么搞呢?C++的"初始化"小结
请问一个implicit conversion的问题(C++)请教各路C++大神 为什么f(3) 输出是 'dd'
one question about initializaiton list这个代码啥意思c#
question regarding const functionHelp: who has gcc 4.0 or higher
c++ operator overloading question怎么搞的?
问两个C++语法问题a string define question (c++)
相关话题的讨论汇总
话题: assignment话题: operator话题: 成员话题: 数据话题: 调用
进入Programming版参与讨论
1 (共1页)
c**********e
发帖数: 2007
1
假设某个derived class D 没有定义assignment operator, 而它的base class B 定义
了assignment operator,那么 D 在进行assignment的时候就会调用B的assignment
operator,以及所有D的数据成员的assignment operator。好像书上是这么说的。
按字面上说,B的数据成员都是D的数据成员,所以B的数据成员的assignment operator
也应该调用。但实际上不是这样。B的数据成员的assignment operator没有被调用。
c**********e
发帖数: 2007
2
某老大自宫了一篇回帖。俺猜一定臭骂俺傻叉,然后又决定不骂了,放俺一马。俺感激
不尽啊。
X****r
发帖数: 3557
3
你是指copy assignment operator吧。
B的数据成员被D继承,但不能简单等同于D的数据成员。
D的implicitly-defined copy assignment operator会调用B的
copy assignment operator,后者如果也是implicitly-defined的话
自然会调用B的数据成员的copy assignment operator,不然的话自然有
他自己的copy assignment的语义,D怎么能够越俎代庖来赋值B的成员呢。

operator

【在 c**********e 的大作中提到】
: 假设某个derived class D 没有定义assignment operator, 而它的base class B 定义
: 了assignment operator,那么 D 在进行assignment的时候就会调用B的assignment
: operator,以及所有D的数据成员的assignment operator。好像书上是这么说的。
: 按字面上说,B的数据成员都是D的数据成员,所以B的数据成员的assignment operator
: 也应该调用。但实际上不是这样。B的数据成员的assignment operator没有被调用。

c**********e
发帖数: 2007
4
You are right.
I was talking about "它的base class B 定义了assignment operator".

【在 X****r 的大作中提到】
: 你是指copy assignment operator吧。
: B的数据成员被D继承,但不能简单等同于D的数据成员。
: D的implicitly-defined copy assignment operator会调用B的
: copy assignment operator,后者如果也是implicitly-defined的话
: 自然会调用B的数据成员的copy assignment operator,不然的话自然有
: 他自己的copy assignment的语义,D怎么能够越俎代庖来赋值B的成员呢。
:
: operator

1 (共1页)
进入Programming版参与讨论
相关主题
a string define question (c++)one question about initializaiton list
[合集] 又学了一招question regarding const function
a simple question about constructorc++ operator overloading question
请教C++问题问两个C++语法问题
*(&b1)=b编译不过,b1=b可以,区别是?C++ pointer to function is buggy
再一个问题c++问个函数指针指向操作符的问题
friend function 不能virtual 怎么搞呢?C++的"初始化"小结
请问一个implicit conversion的问题(C++)请教各路C++大神 为什么f(3) 输出是 'dd'
相关话题的讨论汇总
话题: assignment话题: operator话题: 成员话题: 数据话题: 调用