我什么时候可以使用前瞻性声明?我正在寻找允许在另一个类的头文件中进行类的前向声明的定义:我是否允许为基类,作为成员持有的类,通过引用传递给成员函数的类等执行此操作?
3 回答
慕田峪9158850
TA贡献1794条经验 获得超7个赞
除了指向不完整类型的指针和引用之外,您还可以声明指定参数和/或返回不完整类型值的函数原型。但是,除非是指针或引用,否则无法定义具有不完整的参数或返回类型的函数。
例子:
struct X; // Forward declaration of X
void f1(X* px) {} // Legal: can always use a pointer
void f2(X& x) {} // Legal: can always use a reference
X f3(int); // Legal: return value in function prototype
void f4(X); // Legal: parameter in function prototype
void f5(X) {} // ILLEGAL: *definitions* require complete types
- 3 回答
- 0 关注
- 670 浏览
添加回答
举报
0/150
提交
取消