C++之对象组合

#include<stdio.h>
//初始化列表 提供了对成员变量初始化的方式
//Constructor
       class M
      {
       private:
      int mI;
       public:
     M(int i)
    {
      printf("M(int i),i=%d\n",i);
      mI=i;
     }
    int getI()
    {
    return mI;
    }

};

class Test
   {
        private:
        const int c; //类里面成员定义时变量不能初始化
       M m1;
       M m2;
         public:
        Test():c(1),m1(2),m2(3)            //////////////////重要   初始化列表
       {                                /////const成员只能被初始化  不能被赋值
        printf("Test()\n");        ///构造函数体内叫赋值
       }

void print()
      {
        printf("c=%d,m1.mI=%d,m2.mI=%d\n",c,m1.getI(),m2.getI());
      }

};

void run()
    {
     Test t1;
     t1.print();
    }
    int main()
  {
    run();
    printf("Press any key to continue...");
    getchar();
    return 0;

}

时间: 2024-10-30 03:41:00

C++之对象组合的相关文章

面向对象程序设计-C++_14对象组合_课时15继承

对象组合,就是一个类的对象作为另外一个类的成员,涉及类的对象,对象是实体,玩实 继承,涉及类,类是概念,玩虚 public: 所有人都可以接触 private: 数据放private protected: 留给子类

10,组合模式(Composite Pattern)是将对象组合成树形结构以表示“部分--整体”的层次结构。使得用户对单个对象和组合对象的使用具有一致性。

Composite模式也叫组合模式,是构造型的设计模式之一.通过递归手段来构造树形的对象结构,并可以通过一个对象来访问整个对象树. Component (树形结构的节点抽象) - 为所有的对象定义统一的接口(公共属性,行为等的定义) - 提供管理子节点对象的接口方法 - [可选]提供管理父节点对象的接口方法  Leaf (树形结构的叶节点) Component的实现子类  Composite(树形结构的枝节点) Component的实现子类 适用于: 单个对象和组合对象的使用具有一致性.将对象组

3. 闭包_对象组合继承模式_事件轮询机制

1.谈谈闭包? (产生条件.是什么.在哪里.作用.生命周期.缺点) 产生闭包的三个条件: 函数嵌套 内部函数引用外部函数的局部变量 执行外部函数 包含被引用的局部变量的一个"对象",  通过 chrome 开发者工具可以调试查看到,就是 closure,它存在嵌套的内部函数中 作用: 延长了局部变量的存活时间, 让函数外部可以操作(读写)到函数内部的数据(变量/函数) 闭包的生命周期: 产生 :  在嵌套内部函数定义执行完时就产生了(不是在调用) 死亡 :  在嵌套的内部函数成为垃圾对

Javascript之对象组合继承

感悟: 最近看了一些关于Javascript对象继承的知识,发现自己之前虽然看了一些书,但是很多知识都忘了.虽然很多东西都忘了,但再次看的过程中对这些东西不会再向刚接触时那么陌生,而且理解起来也比之前顺畅和透彻多了. 充分说明:多看书是有意义的. ————————————————————————————————————————————————————————————————————————————————————————————碎碎念 关于对象之间的继承,在Javascript中主要是通过原型对

【python39--面向对象组合】

一.组合 定义:当几个对象是水平方向的时候,就应该考虑组合,当对象是纵向的时候用继承,组合就是用一个类把2个平级层次的类放在一起 #现在定义一个类,叫水池,水池里面有鱼和乌龟class Turtle: def __init__(self,x): self.num = x class Fish: def __init__(self,y): self.num = y class Pool: def __init__(self,x,y): self.turtle = Turtle(x) self.fi

python之对象组合

对象的组合又叫嵌套或建模,是通过不同类之间的对象相互赋值完成的,具体如下面的例子 class School(): def __init__(self,name,addr): self.name=name self.addr=addr def speech(self): pass sch1=School("北京","昌平区沙河") sch2=School("上海","景宁区") sch3=School("深圳"

python字典对与list对象组合使用小问题

遇到的低级错误,做个小记录,防止下次在陷进去........ 两行数据,分别每行做为一个字典,存传在list中,但是现在问题来了,第二行的数据会覆盖第一行.结果就是,list存储了的两个元素的数据一样.都是最后一条. 如图: 经过多次检查,多次的折磨,我是越陷越深啊,因为字典对现两行数据的key值一样,按照我代码写的,第二次是要替换第一行的,就是说字典对象中只有一行数据. ok,我想这样也没关系嘛,每次改之前我都是增加到数组里,改了也不影响吧.结果太想当然了. 结果,第二次修改了字典内容后,li

Composite(组合)--对象结构型模式

1.意图 将对象组合成树形结构以表示"部分-整体"的层次结构.Composite使得用户对单个对象和组合对象的使用具有一致性. 2.动机 可以组合多个简单组件以形成一些较大的组件,这些组件又可以组合成更大的组件.Composite模式描述了如何使用递归组合,使得用户不必对这些类进行区别. 3.适用性 表示对象的部分-整体层次结构. 希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象. 4.结构 5.代码实例 #include <memory> #in

Java并发编程实践之对象的组合

---恢复内容开始--- 1 对象组合的目的 将一些现有的线程安全类组合成更大的组件,也是线程安全的: 1.1 构造线程安全的类需要考虑: 构成对象状态的所有变量: 对象变量的不变性条件(对象的变量都有取值范围,要保证变量的取值都在这个范围内, 否则,对象的状态就是无效的): 建立对象状态的并发管理策略: 1.2 类的不变性条件和类的后验条件 不变性条件:变量都有一个取值范围,比如 long count,count的取值范围是Long.MIN_VALUE,Long.MAX_VALUE, 再加上自