首页 > 编程语言 >c++在嵌入类中定义上层类的实例

c++在嵌入类中定义上层类的实例

时间:2023-04-22 11:37:27浏览次数:30  
标签:嵌入 Attr 对象 c++ private class 类中 定义

问题是这样的,嵌入类挺好的,可以有效表明类之间的从属关系,我们常常这样

class A {
public:
   class Attr {
   private:
     A& mA;
   };
};

这样是没有问题的,因为A此时还没有完全定义,使用引用或指针都是可以的。

但是有些时候,如果A对象是一个临时对象,但我们想让Attr对象可以独立于A对象存在,这样Attr对象直接持有A对象就可以了。但是把上面的A&,改为A是编译不过的。

解决方案来了,原来嵌入类也可以前向声明,然后定义在外面,这样

class A {
public:
    class Attr;
};

class A::Attr {
private:
    A mA;
};

标签:嵌入,Attr,对象,c++,private,class,类中,定义
From: https://www.cnblogs.com/windtail/p/17342662.html

相关文章

  • c/c++零基础坐牢第六天
    c/c++从入门到入土(6)开始时间2023-04-20 19:23:57结束时间2023-04-22 11:06:28 前言:在解决实际问题中,我们会需要重复执行一些已知的操作,如级数求和、穷举或迭代求和。无论次数已知或未知,这都是选择结构和顺序结构难以解决的,这时,我们便引入循环控制结构,其中包括次数已知的计数......
  • 01-目录---C/C++
    第01章:数据类型typedef与typeid.name():链接数据类型:链接类型转换:链接X:链接X:链接X:链接X:链接X,链接x:链接X:链接第02章:常量与变量常量:链接变量:链接变量跨文件使用,链接有关变量声明的关键字:链接X:链接X:链接X:链接X:链接X:链接X:链接X:链接X:链接X:链接X:链接X:链接第03......
  • C++实现职工管理系统
    1、管理系统需求1.1考察知识点:C++的面向对象性,文件的读写操作1.2需求分析职工管理系统可以用来管理公司内所有员工的信息利用C++来实现一个基于多态的职工管理系统公司中职工分为三类:普通员工、经理、老板,显示信息时,需要显示职工编号、职工姓名、职工岗位、以及职责普通......
  • c++打卡第十一天
    一、问题描述牛顿迭代法求方程根。编写一个函数用来实现牛顿迭代法求方程根。方程为为ax^4+bx*3+cx^2+dx+e=0,系数由系统输入,求x在1附近的一个实根,由主函数输出。x=x0-f(x0)/fd(x0),当x减去x0的绝对值小于等于1e-5即十的负五次方时,程序结束。二、设计思路。①一个简单的函数,......
  • C++实现通讯录管理系统
    C++实现简单的通讯录管理系统1.功能设计通讯录是一个可以记录亲人、好友信息的工具。本代码主要利用C++来实现一个通讯录管理系统系统中需要实现的功能如下:●添加联系人:向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多记录1000人●显示联系人:显......
  • c++万能头文件
    #include<bits/stdc++.h>//C++includesusedforprecompiling-*-C++-*-//Copyright(C)2003-2014FreeSoftwareFoundation,Inc.////ThisfileispartoftheGNUISOC++Library.Thislibraryisfree//software;youcanredistributeitand/......
  • C/C++课程信息管理系统[2023-04-21]
    C/C++课程信息管理系统[2023-04-21]综合应用所学C语言知识,设计完成一个软件工程专业课程信息管理系统。本系统拟实现以下功能:【数据文件】课程信息数据文件。每门课程的信息包含:课程编号,课程名称,理论课时实验课时、学分、开课学期(8个学期)、课程性质《分为必修、选修、限......
  • c++训练打卡(13)
    分糖果问题:10个小孩围成一圈分糖果,老师分给第1个小孩10块,第2个小孩2块,第3个小孩8块,第4个小孩22块,第5个小孩16块,第6个小孩4块,第7个小孩10块,第8个小孩6块,第9个小孩14块,第10个小孩20块。然后所有的小孩同时将手中的糖分一半给右边的小孩;糖块数为奇数的人可向老师要一块。问经过这样......
  • 开心档之C++ 类 & 对象
    C++类&对象C++在C语言的基础上增加了面向对象编程,C++支持面向对象程序设计。类是C++的核心特性,通常被称为用户定义的类型。类用于指定对象的形式,它包含了数据表示法和用于处理数据的方法。类中的数据和方法称为类的成员。函数在一个类中被称为类的成员。C++类定义定......
  • 开心档之C++ 基本语法
    C++基本语法C++程序可以定义为对象的集合,这些对象通过调用彼此的方法进行交互。现在让我们简要地看一下什么是类、对象,方法、即时变量。对象- 对象具有状态和行为。例如:一只狗的状态-颜色、名称、品种,行为-摇动、叫唤、吃。对象是类的实例。类- 类可以定义为描述对......