加法函数重载?

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;
    
;

【讨论】:

以上是关于加法函数重载?的主要内容,如果未能解决你的问题,请参考以下文章

复数类重载加法减法和乘法运算符

函数重载

函数重载

类和对象(17)—— 操作符重载

C++的函数重载

java函数重载