c++中的前置声明,只对该类的指针,SmartPtr)有效。如果要继承这个一个雷类,则必须包含这个类的定义部分。否则编译就会报错forward declarations of "XXXX".
例子:
example1:
class A :pubilc B
{
};
这时候需要include 类B的定义。
example2:
class B;//前置声明
SMART_PTR(B);
class A
{
public:
BPtr bptr;
B *b;
};
本文探讨了C++中如何正确使用前置声明以及在需要进行类继承时的注意事项。特别是当涉及到智能指针时,必须包含被继承类的完整定义以避免编译错误。
c++中的前置声明,只对该类的指针,SmartPtr)有效。如果要继承这个一个雷类,则必须包含这个类的定义部分。否则编译就会报错forward declarations of "XXXX".
例子:
example1:
class A :pubilc B
{
};
这时候需要include 类B的定义。
example2:
class B;//前置声明
SMART_PTR(B);
class A
{
public:
BPtr bptr;
B *b;
};
549
2522

被折叠的 条评论
为什么被折叠?