The*_*ter 2 c++ superclass method-call
让我们说有这个:
class A1
{
public:
void draw(){}
};
class A2
{
public:
void draw(){}
};
class A : public A1, public A2
{};
void main()
{
A a;
// I want to invoke the draw() of A1. How can I do that?
}
Run Code Online (Sandbox Code Playgroud)
如果我只是像a.draw()这样做,它就不会让我,因为A1 :: draw()和A2 :: draw()都与此匹配.在这种情况下我该怎么办?我如何调用A1的平局()?
你可以写 a.A1::draw();
#include <iostream>
class A1
{
public:
void draw(){ std::cout << "A1::draw()"; }
};
class A2
{
public:
void draw(){ std::cout << "A2::draw()"; }
};
class A : public A1, public A2
{};
int main()
{
A a;
a.A1::draw();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
231 次 |
| 最近记录: |