Hum*_*awi 3 c++ declaration include forward-declaration c++11
我有以下情况:
class_a.hpp:
#include "class_b.hpp" // is this "include" mandatory?
class class_a{
private:
class_b b;
};
Run Code Online (Sandbox Code Playgroud)
class_a.cpp:
#include "class_b.hpp"
//code that uses member variables and functions from class_b
Run Code Online (Sandbox Code Playgroud)
class_b.hpp:
class class_b{};
Run Code Online (Sandbox Code Playgroud)
是否有可能摆脱#include "class_b.hpp"的class_a.hpp?既然只是宣言,为什么我不能只使用前瞻声明而不包括它?(我试过但是没有编译)
当然我已经包括在内class_b.hpp了class_a.cpp.
由于class_b需要在class_a没有任何间接(例如指针)的情况下存储在内部,因此class_b在声明期间需要知道大小class_a.为了知道大小,class_b需要提供的声明:#include因此需要该指令.