我在面试时遇到了这个问题,但仍然不知道如何解决:
假设我们有一个 C++ 代码:
int main(int argc, char* argv[])
{
L<A>* pA = 0;
L<B>* pB = 0;
pA = pB;
}
我们应该添加什么才能真正编译?
换句话说,我们应该如何定义L
,A
和B
类?请不要使用预处理器的指令。
我只知道如何解决它:
template<class T> struct L {};
struct A {};
typedef A B;
甚至更简单的前向声明:
struct A;
typedef A B;
template<class> struct L;
还有其他想法吗?