Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何调用基类&x27;是函数的输入参数的虚拟函数 使用C++,我有< /P> struct Base { virtual void stuff(/*base stuff*/); }; struct Derived : public Base { void stuff(/*derived stuff*/); }; void function1(Derived& obj){ obj.stuff(); }_C++_Inheritance_Virtual Functions - Fatal编程技术网

如何调用基类&x27;是函数的输入参数的虚拟函数 使用C++,我有< /P> struct Base { virtual void stuff(/*base stuff*/); }; struct Derived : public Base { void stuff(/*derived stuff*/); }; void function1(Derived& obj){ obj.stuff(); }

如何调用基类&x27;是函数的输入参数的虚拟函数 使用C++,我有< /P> struct Base { virtual void stuff(/*base stuff*/); }; struct Derived : public Base { void stuff(/*derived stuff*/); }; void function1(Derived& obj){ obj.stuff(); },c++,inheritance,virtual-functions,C++,Inheritance,Virtual Functions,在这个场景中,function1将使用派生的do()函数。如果在function1中,我想调用基类的do()函数呢?如果我将function1调用为 function1(动态强制转换(派生对象))?在更正代码中的大量错误后,这确实是可以实现的: #include <iostream> class Base { public: virtual void foo() { std::cout << "Base\n"; } }; class Derived : pub

在这个场景中,function1将使用派生的do()函数。如果在function1中,我想调用基类的do()函数呢?如果我将function1调用为
function1(动态强制转换(派生对象))

在更正代码中的大量错误后,这确实是可以实现的:

#include <iostream>

class Base {
public:
    virtual void foo() { std::cout << "Base\n"; }
};

class Derived : public Base {
public:
    void foo() { std::cout << "Derived\n"; }
};

void function1(Derived *p) {
   p->Base::foo();  // <<<<< Here is the magic >>>>>
}

int main() {
    Derived d;
    function1(&d);
}

(请参阅)

这个
do
对于标识符来说是非常不幸的名称……好问题,但我认为这是不可能的。
Base