在有时候由于类太大。须要在类在后面定义;

比如:

class Y{void f(X);
}; class X{
//一些成员数据和函数};
//error

由于c++要求不论什么一个变量在引用之前必须声明。

。在上述定义中我们能够调换两者的顺序来实现。

可是假设形成了循环?

class X{void f1(Y)
};
class Y{void f(X);
}; 
//error

这样的就不能通过简单的调换顺序来通过编译器在调用之前必须声明的金科玉律了。

那么我们能够通过在上述中先声明?

class Y;
class X{void f1(Y)   //error
};
class Y{void f(X);
}; 

但是上述的代码中函数f1(Y)的參数是变量Y而这时候必须知道整个类Y的详细结构的。

所以是不可行的。

所以我们通过将函数f1()中的參数Y改为

class Y;
class X{void f1(Y*)
};
class Y{void f(X);
}; 
//right

将上述參数类Y改为其指针之后就可行的由于编译器知道怎样传递一个地址,这一地址是固定大小的。

而不必要知道传递的是什么对象,即使是我们全然不知道须要传递的对象类型的大小。

可是这里函数f2()就能够使用类X作为參数 。由于类X已经被完整的定义了。

转载于:https://www.cnblogs.com/yangykaifa/p/6795051.html

C++中没有定义类的引用。相关推荐

  1. python定义类的程序_python扫码签到程序python中如何定义类

    什么是类? 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 什么是方法? 类中的函数即为方法 如何定义一个类? 定义类,语法格式如下: < ...

  2. Php扫码签到功能怎么实现,python扫码签到程序python中如何定义类

    什么是类? 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 什么是方法? 类中的函数即为方法 如何定义一个类? 定义类,语法格式如下: < ...

  3. python语言学习:python语言学习中的定义类、定义函数、封装api等详细攻略

    python语言学习:python语言学习中的定义类.定义函数.封装api等详细攻略 目录 python语言学习中的定义类 python语言学习中的定义函数 python语言学习中封装api pyth ...

  4. python中定义类的关键字,在Python中,定义类的关键字是

    在Python中,定义类的关键字是 答:class; 劳动生产率分为:实物劳动生产率.工时劳动生产率.货币劳动生产率. 答:正确 总的来说,全球通用卡交易金额.交易笔数在近十年来,低于全球经济的增速 ...

  5. c++中两个类互相引用的问题

    最近在改一个C++程序的时候碰到一条警告信息,警告信息为:" 删除指向不完整"Q2DTorusNode"类型的指针:没有调用析构函数                 1& ...

  6. 【python】python中的定义类属性和对像属性

    python中变量是没有类型的可以绑定任意类型,但是在语法上不能声明变量. 那我们怎麽来声名一个变量呢? f=None 这样我们给着个变量绑定了以各None类型,我们随时可用重新绑定其它类型.这样我们 ...

  7. php成员属性的声明方式,PHP中如何定义类及其成员属性与操作_PHP教程

    类的概念:类是具有相同属性和操作的一组对象的集合.它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和操作两个主要部分.在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属 ...

  8. python中如何定义类?

    一.类定义: class <类名>: <语句> 类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性 如果直接使用类名修改其属性,那么将直接影响到已经实例 ...

  9. java中定义类的关键字为_在Java中,定义类的关键字是__________________.

    参考答案如下 患者,定的关女,定的关65岁.4年前被确诊为动脉粥样硬化,今日被人打后,入院检查中出现口唇发绀,四肢冰冷,血压下降而死亡.尸检发现:冠状动脉IV级狭窄,心肌变软.其死亡的原因 义类门静脉 ...

最新文章

  1. DOM模拟京东常用快捷键
  2. java 判断 年份,java怎么判断指定年份是否是闰年
  3. 关于HTTP_CLIENT_IP,HTTP_X_FORWAR
  4. Nginx+tomcat集群的session共享问题
  5. 关于相对布局RelativeLayout的各种属性介绍
  6. 转载 vue的基础使用
  7. 三种迷宫算法(深度优先、随机Prim、递归分割)
  8. 特别推荐BLOG(一) 程序猿DD的博客
  9. 海康摄像头设置与测试指南
  10. 图像变换 - 图像拉伸、收缩、扭曲、旋转- 仿射变换(cvWarpAffine)
  11. pitfall when implementing multiple interfaces
  12. oracle 亿级数据存储方案
  13. Pikachu漏洞练习平台----验证码绕过(on server) 的深层次理解
  14. usb 启动盘制作的几种办法
  15. pyalgotrade源码分析4--PyAlgoTrade统计指标
  16. 艾宾浩斯遗忘规律学习记东西(诗词,单词等)
  17. Android亮屏和熄屏控制
  18. C#/VB.NET 在Excel单元格中应用多种字体格式
  19. Ubuntu Kylin V10安装python3.10.4
  20. 华盛顿大学计算机科学,华盛顿大学计算机科学与信息系统Computer Science and Information Systems世界排名2020年最新排名第18位(QS世界排名)...

热门文章

  1. linux装nvidia驱动没有图形界面,[转]Fedora 13下安装Nvidia显卡驱动的方法/Linux无法进入X Windows 图形界面的解决方法...
  2. arduino光敏+LED+数码管+蜂鸣器综合实验
  3. (最短路)Shopping
  4. 计算机硬件知识教学的信息化手段,《计算机硬件组成》教学设计
  5. php面试宝典1000题,【PHP面试宝典1000题】HTTP中的请求头(深圳小美网络科技)
  6. 多媒体分析与理解_如何设计一个出色的数字多媒体展厅?
  7. 办公室中有一台计算机连接打印机,办公室就一个打印机,怎么让多个电脑一起用...
  8. java xml opencv_Java中使用opencv
  9. https脚本调linux执行器,linux平台下一键配置网站https
  10. 基于java SSM springboot学生信息管理系统设计和实现2.0