首页 > 编程语言 >【C++学习笔记——前置声明:解决嵌套引用问题】

【C++学习笔记——前置声明:解决嵌套引用问题】

时间:2023-07-11 17:56:46浏览次数:51  
标签:ifndef 前置 C++ 嵌套 解决 声明 class size

在代码中,两个类相互引用的问题,那么我们就需要在头文件中相互写 #include,这样会造成相互循环cpoy头文件,编译器报错,为了解决这个问题,设置了前置声明这个方法。
A.h

#ifndef A_H
#define A_H
class B
class A{
typedef vector<string>::sizetype size_type;
B* b;
}
#endif

B.h

#ifndef B_H
#define B_H
#include "A.h"
class B{
A::size_type num;
}
#endif

前置声明,解决了在A中可以调用B,但在单元编译时,无法确定B的size,所以把B定义成B*,固定大小为系统大小,就解决了。

标签:ifndef,前置,C++,嵌套,解决,声明,class,size
From: https://www.cnblogs.com/kafeibuhuizui/p/17545492.html

相关文章

  • C/C++学生成绩管理系统[2023-07-06]
    C/C++学生成绩管理系统[2023-07-06]学生成绩管理系统开发一个可以管理学生成绩以及学生基本信息的一个信息系统,至少实现如下功能:信息管理,支持信息的增、删、改、查操作,具体信息类型如下:(1) 管理学生信息 ,包括学号,姓名,年龄,班级等等信息。(2) 班级信息,包括班级编号、班级人数,......
  • 【ChernoC++笔记】移动赋值运算符
    【90】【ChernoC++】【中字】stdmove与移动赋值操作符▶️移动构造与std::move接上节的String类,我们可以通过string来构造新的对象dest://拷贝构造Stringstring="Hello";Stringdest=string;为了使用移动构造函数,string需要cast为临时变量://移动构造Stringdest=(s......
  • 104.C++中标准库是什么?
    104.C++中标准库是什么?1.C++标准库可以分为两部分:1.1标准函数库:这个库是由通用的、独立的、不属于任何类的函数组成的。函数库继承自C语言。输入/输出I/O、字符串和字符处理、数学、时间、日期和本地化、动态分配、其他、宽字符函数*输入输出流:`<iostream>`头文件中的......
  • 98.C++如何处理多个异常的?
    98.C++如何处理多个异常的?C++中的异常情况:语法错误(编译错误):比如变量未定义、括号不匹配、关键字拼写错误等等编译器在编译时能发现的错误,这类错误可以及时被编译器发现,而且可以及时知道出错的位置及原因,方便改正。运行时错误:比如数组下标越界、系统内存不足等等。这类错误不易......
  • 77.C++中的指针参数传递和引用参数传递有什么区别?底层原理你知道吗?
    77.C++中的指针参数传递和引用参数传递有什么区别?底层原理你知道吗?1.指针参数传递本质上是值传递,它所传递的是一个地址值。值传递过程中,被调函数的形式参数作为被调函数的局部变量处理,会在栈中开辟内存空间以存放由主调函数传递进来的实参值,从而形成了实参的一个副本(替身)。值传......
  • 81.知道C++中的组合吗?它与继承相比有什么优缺点吗?
    81.知道C++中的组合吗?它与继承相比有什么优缺点吗?1.继承继承是Isa的关系,比如说Student继承Person,则说明StudentisaPerson。继承的优点是子类可以重写父类的方法来方便地实现对父类的扩展。继承的缺点有以下几点:①父类的内部细节对子类是可见的。②子类从父类继承的方法......
  • PAT-甲级-1004 Counting Leaves C++
    Afamilyhierarchyisusuallypresentedbyapedigreetree.Yourjobistocountthosefamilymemberswhohavenochild.InputSpecification:Eachinputfilecontainsonetestcase.Eachcasestartswithalinecontaining 0<N<100,thenumberofnode......
  • Visual Studio C++ 相关使用技巧(持续更新)
    0.目的Startedin2023-07-1113:45:55记录VisualStudioC++的一些问题、配置步骤,用于提升效率。主要用VS2022版本,偶尔用VS2019。1.关闭inlayhints函数的参数前面,显示了类型。有时候感觉很碍眼。在VSCode里这称为inlayhints。在VS2022中文版本中,称为“启......
  • 动态数组和C++ std::vector详解
    目录1.std::vector2.vector的用法    2.1vector的定义和声明    2.2成员函数        2.2.1基本函数            operator=            assign            get_allocator        2.2.2元素访问   ......
  • C++进制转换+扫描线算法(二维区间合并面积和)
    ......