加法函数重载?
Posted
技术标签:
【中文标题】加法函数重载?【英文标题】:Additive Function Overloading? 【发布时间】:2015-10-22 19:27:53 【问题描述】:假设我有一个基类和一个派生类:
struct A
void foo()
std::cout << "Do one thing." << std::endl;
;
struct B: public A
void foo()
std::cout << "Do another thing." << std::endl;
;
B myB;
myB.foo();
通常这会打印Do another thing.
,但如果我想让foo()
也运行基础foo()
并打印:
Do one thing.
Do another thing.
【问题讨论】:
【参考方案1】:在B::foo()
中调用A::foo()
,这样基类的函数将首先执行,然后派生类函数的其余部分在此之后执行。
struct A
void foo()
std::cout << "Do one thing." << std::endl;
;
struct B : public A
void foo()
A::foo();
std::cout << "Do another thing." << std::endl;
;
【讨论】:
以上是关于加法函数重载?的主要内容,如果未能解决你的问题,请参考以下文章