假如我有个结构struct Packet,在class A和class B中有用到。这个Packet应该在哪定义好呢?
假如我有个结构struct Packet,在class A(A.h)和class B(B.h)中都有用到。这个Packet应该在哪定义好呢?
我希望这个Packet结构的定义仅在A和B中可见,即是不要占用掉全局的名字。因为可能其他文件中也可能正好要用到Packet这个名字。
[解决办法]
A.h和B.h中如何用到struct Packet?
[解决办法]
改个名字得了,需要的时候强制转化成别的结构体
[解决办法]
要避免跟别的冲突就加个命名空间吧
[解决办法]
把Packet 放入一个单独的命名空间,比如pp
A和B里面用的时候就是pp::Packet
[解决办法]
单独放在一个头文件
[解决办法]
[解决办法]
[解决办法]
不好意思,前置声明的方式应该与定义的方式使用相同的关键字。因此Packet的前置声明应该为:
struct Packet;
而不是
class Packet;