在 C++ 中可以将函数参数定义为不止一种类型吗?
#include <iostream>
using namespace std;
class A {
public:
void PrintA() { cout << "A" << endl;}
};
class B {
public:
void PrintB() { cout << "B" << endl;}
};
class C: public A, public B {
public:
C(){;}
};
class D: public A, public B {
public:
D(){;}
};
///
void __printall__(A*a, B*b){
a->PrintA();
b->PrintB();
}
#define printall(a) __printall__(a,a)
///
int main(int argc, char *argv[]){
C c;
D d;
printall(&c);
printall(&d);
}
我想用不使用宏的东西来改变注释之间的代码。我不会强制转换指针,因为我想保持类型安全。我什至不会在 C/D 和 A/B 之间引入另一个类,因为实际上我的类层次结构比代码中显示的要复杂一些,并且不希望重新设置从 A 或 B 派生的所有类