摘要: 1. 函数模板的关键字:template class typename(其中后两者相同) 2. 函数模板: 类型模板 template T display(T a,T b ) { } 调用的时候: display(100,2);自动判断//或者 display(100,2); 变量作为参数 template { } 多参数模板 template void display(A a,... 阅读全文
posted @ 2019-07-24 20:58 xjyxp01 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2019-07-24 20:49 xjyxp01 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 从this指针谈静态成员函数: 1、调用静态成员函数和静态数据成员时,并不与对象相关,只是与类相关 2、使用静态成员函数,并不会传入一个隐形的this指针,并不知道调用的数据成员是哪个对象的数据成员。所以在静态的成员函数中无法调用非静态的数据成员 3、可以在静态的成员函数中调用静态的数据成员 阅读全文
posted @ 2019-07-24 20:42 xjyxp01 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 1,友元全局函数: friend void printXY(Coordinate &c); 将函数printXY声明成类coordinate的友元,则在printXY可以直接访问coordinate的private的成员。 友元成员函数: friend void Circle::printXY(Coordinate &c); 将类Circle的成员函数printXY声明称Coordinate类的... 阅读全文
posted @ 2019-07-24 20:33 xjyxp01 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 类类型指向子类对象 父类和子类存在相同函数(重载) 阅读全文
posted @ 2019-07-24 18:04 xjyxp01 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 虚继承: 人 / \ 工人 农民 \ / 农民工 使用虚(virtual)继承,防止"农民工"中有两个"人"的实例 阅读全文
posted @ 2019-07-24 17:42 xjyxp01 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 多重继承一家子,祖孙三代 多继承的父类没有直接关系,写法多一个逗号 阅读全文
posted @ 2019-07-24 17:06 xjyxp01 阅读(417) 评论(0) 推荐(0) 编辑
摘要: 父类的指针指向子类对象的时候 只能访问子类中父类原有的成员,而无法访问子类中独有的数据成员和成员函数 子类对象向父类对象赋值。或用子类对象初始化父类对象,本质是将子类当中从父类继承下来的数据成员赋值给父类对象,而其他的数据将会被截断,丢失。 父类指针指向子类对象。父类指针只能访问父类原有的成员。 阅读全文
posted @ 2019-07-24 17:04 xjyxp01 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 父子关系 成员同名 隐藏 阅读全文
posted @ 2019-07-24 17:03 xjyxp01 阅读(109) 评论(0) 推荐(0) 编辑
摘要: ①通过public继承的都是被继承为派生类中所对应的访问属性(private例外), 如:基类public通过public继承为派生类中public; 基类protected通过public继承为派生类中protected‘ 基类private通过public继承为无法访问。 ②通过protecte 阅读全文
posted @ 2019-07-24 16:53 xjyxp01 阅读(103) 评论(0) 推荐(0) 编辑
摘要: Coordinate * const pCoor = &coor1 : 这种方式定义的常指针“只能指向coor1,但可以调用coor1的不同的函数”;(拥有读写权限) const Coordinate *pCoor = &coor1 : 只能调用coor1的“常成员函数”。(只拥有读权限) 阅读全文
posted @ 2019-07-24 16:43 xjyxp01 阅读(359) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2019-07-24 16:33 xjyxp01 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 对象成员指针:对象的指针作为另外一个类的成员 对象成员指针既可以用初始化列表进行初始化,也可以使用普通构造函数进行初始化 对象成员指针常见的初始化方式和销毁方式 阅读全文
posted @ 2019-07-24 16:11 xjyxp01 阅读(517) 评论(0) 推荐(0) 编辑
摘要: 使用new关键字申请内存空间会调用构造函数 而使用malloc申请内存空间只是单纯分配空间,不会调用构造函数 阅读全文
posted @ 2019-07-24 16:06 xjyxp01 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 浅拷贝 对象深拷贝的实现 不是简单的对对象进行拷贝,而是将堆中内存中的内容也进行拷贝 阅读全文
posted @ 2019-07-24 15:13 xjyxp01 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 对象成员:一个对象中包含其他对象 如:class Line{ public: Line(); private: Coordinate m_coorA; Coordinate m_coorB; } 当实例化这样一个对象时,会先实例化m_coorA,再实例化m_coorB,最后实例化Line 对象消亡时,会先销毁Line,再m_coorB,最后m_... 阅读全文
posted @ 2019-07-24 15:04 xjyxp01 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 对象数组 学生 x 50 栈:Student stu[50] 堆: Student *p = new Student[50] 阅读全文
posted @ 2019-07-24 14:58 xjyxp01 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 析构函数的唯一作用就是释放内存,所以不允许定义参数 类{命名空间;成员函数;数据成员;} 数据成员{普通数据成员;string;const成员;静态数据成员;对象成员;} 成员函数{属性封装函数;一般功能函数;特殊函数{构造函数{拷贝构造函数;默认构造函数};析构函数}} 成员函数{参数默认值;函数 阅读全文
posted @ 2019-07-24 11:05 xjyxp01 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 从栈中实例化 Coordinate coor; coor.x=10; coor.y=20; 栈中实例化之后内存自动清除。 从堆中实例化 Coordinate *p=new Coordinate(); p->x=100; p->y=200; 堆中实例化不一定成功,所以需要判断一下:if(p==NULL){ return 0;} ... 阅读全文
posted @ 2019-07-24 10:48 xjyxp01 阅读(1181) 评论(0) 推荐(0) 编辑
摘要: 对象 具体的事物 类 由对象中抽象出来的,出于不同目的,同一个对象可以抽象成不同的类。 阅读全文
posted @ 2019-07-24 10:45 xjyxp01 阅读(109) 评论(0) 推荐(0) 编辑