#define classAnum 2;
#define classBnum 3;
class Base
{
virtual int open()=0;
virtual int close()=0;
}
class A:public Base
{
virtual int open();
virtual int close();
};
class B:public Base
{
virtual int open();
virtual int close();
}
int main()
{
A classA[classAnum];
B classB[classBnum];
openAnyClass(1);
CloseAnyClass(2);
}
我想实现这样的功能。
openAnyClass(1);
CloseAnyClass(2);
这两个函数应该能够从 A 类和 B 类中的任何一个调用 open() 和 close()。
openAnyClass(1) 将调用 classA 或 classB 数组中第一个对象的 open() 函数。
open() --> 在 A 类和 B 类中会有不同的实现。A 类中的 open() 可以从多个客户端调用,并且最多可以调用。不。客户的数量是 # 定义的。
一次只调用一个来自 classA 或 classB 的 open()。我不想拥有相同代码的多个副本。
只有一个函数,我想调用任何 A 类和任何客户端的 open()。
例如:在下面的语句中,我想调用 client1 的 A 类的 open()。openAnyClass(int) 的参数表示客户端 ID。这也可能意味着classB[1].open();
'openAnyClass(1) = classA[1].open();'
这样做的最佳方法是什么?