由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - friend function 不能virtual 怎么搞呢?
相关主题
请问c++中操作符可以声明为虚函数吗?operator overloading (C++)
C++ virtual function 定义在 derived class 会怎么样?[C++] 入门级问题 increment and decrement operators
请问在class member function中如何调用overloaded function caScala的operator似乎不太好读
C++: friend function【讨论】问一道很简单的C++题。。。。 (转载)
弱问一个virtual function的问题virtual function question
一个inheritance 的问题请教一个class design的问题
why use static function here?请教一个class design的问题
Overridden function will cause function shadow in C++, but not in Javaoperator overloading<< or >>
相关话题的讨论汇总
话题: virtual话题: friend话题: function话题: overload话题: class
进入Programming版参与讨论
1 (共1页)
d****b
发帖数: 25
1
c++中 overload << operator 是用 friend function, 但是如果在derived class 中
也overload <<, 因为是friend, 不能virtual, 怎么搞呢, 是不是只能是自己定义一个
virtual void show() 的函数? 谢谢大家
X****r
发帖数: 3557
2
直接overload operator <<就行了,和virtual没关系。
你大概是没分清楚overload和override的区别。

【在 d****b 的大作中提到】
: c++中 overload << operator 是用 friend function, 但是如果在derived class 中
: 也overload <<, 因为是friend, 不能virtual, 怎么搞呢, 是不是只能是自己定义一个
: virtual void show() 的函数? 谢谢大家

d****b
发帖数: 25
3
但是如果有一个定义为指向base class 的指针p,后来又指向了derived class, 那么如
果用cout<<*p的话他是调用的base class的friend function, 我希望调用 derived
class的friend function. 怎么办呢?

【在 X****r 的大作中提到】
: 直接overload operator <<就行了,和virtual没关系。
: 你大概是没分清楚overload和override的区别。

p***o
发帖数: 1252
4
你在friend function里调那个virtual viod show不就完了,
当然前提是你的friend function的参数是base &而不是base。

【在 d****b 的大作中提到】
: 但是如果有一个定义为指向base class 的指针p,后来又指向了derived class, 那么如
: 果用cout<<*p的话他是调用的base class的friend function, 我希望调用 derived
: class的friend function. 怎么办呢?

h*****0
发帖数: 4889
5
这个故事告诉我们,overload<<不是一个好的模式。
写一个函数toString()才是好办法。

【在 d****b 的大作中提到】
: c++中 overload << operator 是用 friend function, 但是如果在derived class 中
: 也overload <<, 因为是friend, 不能virtual, 怎么搞呢, 是不是只能是自己定义一个
: virtual void show() 的函数? 谢谢大家

1 (共1页)
进入Programming版参与讨论
相关主题
operator overloading<< or >>弱问一个virtual function的问题
请教 C++的一个困惑 (operator delete)一个inheritance 的问题
问问C++的diamond problemwhy use static function here?
针对class的成员变量的operator能重载吗?Overridden function will cause function shadow in C++, but not in Java
请问c++中操作符可以声明为虚函数吗?operator overloading (C++)
C++ virtual function 定义在 derived class 会怎么样?[C++] 入门级问题 increment and decrement operators
请问在class member function中如何调用overloaded function caScala的operator似乎不太好读
C++: friend function【讨论】问一道很简单的C++题。。。。 (转载)
相关话题的讨论汇总
话题: virtual话题: friend话题: function话题: overload话题: class