摘要: 纯虚函数:没必要或者不应该有函数体的虚函数,用"=0;"来取代函数体。有纯虚函数的类称为抽象类(缺少函数体),不允许直接用抽象类来创建对象。抽象类总数用来作为父类,由子类来实现(覆盖)那些纯虚函数,从而可以创建子类类型的对象。子类对象可以当成父类对象的引用,或者可以用父类指针指向子类对象。 ×××× 阅读全文
posted @ 2016-05-18 19:31 Visions 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 多态 什么是多态:对各种对象发出同一种指令时,各个对象能根据自身的情况作出相应的响应 如果希望在调用函数时系统根据对象真是类型去转调用相应的函数,需要把那个函数声明为virtual虚函数。子类中可以覆盖这个函数,也自动成为虚函数。覆盖(owerride)要求函数名和参数表都相同返回类型也要一致(比如 阅读全文
posted @ 2016-05-13 19:29 Visions 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 最近在进行一个介于PLC与MES之间的通讯程序,从PLC读数据再组XML上报MES. 组XML使用了XStream,为了方便使用定义了一个所有成员都公开的类,偷懒吗 所以... 因为这是个.xml的配置文件 里面有PLC点位,为了可扩展就想用反射取PLC点位的值,myType.GetProperti 阅读全文
posted @ 2016-05-13 19:11 Visions 阅读(1977) 评论(0) 推荐(0) 编辑
摘要: 面向对象编程之继承 定义一个类的时候想重用一个已有的类,就可以使用继承。 class NewClass:public OldClass{ //新增加的成员 }; 新类会继承旧类的全部成员,成为新类中的成员。新类可以增加新的成员,实现对旧类的扩展。继承方式可以有public/private/prote 阅读全文
posted @ 2016-05-11 23:17 Visions 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 复习: 运算符重载: 编译器把运算符当作函数 全局 函数名:operator 运算符 参数表:所有操作数 返回类型:合乎情理即可 成员 函数名:operator 运算符 参数表:除第一个之外的操作数,当前对象作为第一个操作数 返回类型:合乎情理即可 编译器会尝试这两种形式([]()=->type只当 阅读全文
posted @ 2016-05-09 20:13 Visions 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 运算符函数的定义格式二:成员函数 返回类型operator运算符(除第一个操作数之外的参数表) 双目:运算结果类型operator运算符(第二个操作数) 单目:运算结果类型operator运算符() 以成员函数形式定义时,第一个操作数作为了当前对象,不需要作为实参传递,只需要传递剩余的操作数就可以了 阅读全文
posted @ 2016-05-06 00:20 Visions 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 面向对象的扩展功能 备注:编译器在编译一个类时,会先扫描类定义(不含函数体),之后才扫描类实现(各个成员函数的函数体,静态成员变量的初始化),所以在类的成员函数里可以访问在后面才出现的成员。 const对象调用的成员函数也要求不会修改成员变量的数据。成员函数可以在参数表后用const来宣称自己不会修 阅读全文
posted @ 2016-05-05 00:28 Visions 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 拷贝构造 零初始化:类型名(),对于基本类型而言是数值0,对于类或者结构类型而言是匿名对象。 当用一个同类对象初始化一个同类新对象时,调用的自然是拷贝构造函数。一个类如果没有定义拷贝构造函数,编译器会自动产生一个构造函数,内容是逐个复制对于的成员。这一般可以满足程序的需求。如果其中有指针成员指向动态 阅读全文
posted @ 2016-05-03 23:18 Visions 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 接上一篇 问题,如何在Main函数之前/之后执行某个动作? 答案,可以用全局对象的构造函数和析构函数来实现 对象本身占用的空间会在超出作用范围时或者delete时自动释放,如果对象还额外分配了资源,可以在析构函数中释放额外资源。 匿名对象 直接定义一个对象但不给提供名字,这个对象会在这个语句之后就立 阅读全文
posted @ 2016-05-03 00:23 Visions 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 复习 面向对象 封装(写类),前提是抽象。从对象、行为/交互角度去考虑程序如何实现 类定义:数据,函数,访问限制(public允许本类之外的函数也可以访问,private只允许本类的成员的函数访问),多文件,类实现放在.cpp文件,类定义里面的函数只声明(放在.h文件中#ifndef) 构造函数:创 阅读全文
posted @ 2016-04-30 23:15 Visions 阅读(156) 评论(0) 推荐(0) 编辑