假设我们有一个函数foo的类(),它的计数为3,我们希望从另一个类修改这个函数,修改后它的计数为3,这是以前声明的,但也执行新的代码。()只能由class1调用,我不想使用继承。我应该添加的新代码假设它与class1没有任何关系。
例如:
#include <iostream>
using namespace std;
class class1 {
public:
class1()
{
}
void foo()
{
for(int i =0;i<2;i++)
{cout << i << endl;}
}
};
class class2 {
public:
class2()
{
}
void foo() override
{
Super::foo();
cout << "Jump from a cliff" << endl;
}
};
int main()
{
class1 c1 = class1();
class2 c2 = class2();
c1.foo();
return 0;
}
结果:
0
1
2
Jump From a cliff
2条答案
按热度按时间e0bqpujr1#
您需要对象来呼叫非静态成员函式。
如果你想从
class2::foo
得到想要的输出,你可以这样实现它:或者,
class1
可以有class1
型别的成员。0md85ypi2#
在函数指针数组上找到了解决方案。