我在采访中得到了这个问题,但仍然不知道如何解决这个问题:
假设我们有一个C++代码:
int main(int argc, char* argv[])
{
L<A>* pA = 0;
L<B>* pB = 0;
pA = pB;
}
Run Code Online (Sandbox Code Playgroud)
我们应该添加什么以便实际编译?
换句话说,我们应该如何界定L,A以及B类?请不要使用预处理程序的指令.
我只知道如何解决它:
template<class T> struct L {};
struct A {};
typedef A B;
Run Code Online (Sandbox Code Playgroud)
甚至更简单的前向声明:
struct A;
typedef A B;
template<class> struct L;
Run Code Online (Sandbox Code Playgroud)
还有其他想法吗?