
C++
文章平均质量分 52
Coolkie_zy
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++ this指针
this指针:指向对象自身数据的指针len = len;} int getLen() { return len; } void setLen(int len) { this->len = len; } private: int len;" width="462" style="height:auto">this自然会指向对象内部的成员当声明了多个对象时,成员函数访问的都是调原创 2017-09-28 23:41:39 · 290 阅读 · 0 评论 -
C++虚继承(理解还不到位)
无论继承的层级有多少层,只要他们之间保持着直接或者间接的继承关系,子类都可以与直接父类或者间接父类成为IsA的关系,并且能通过特定的指针对直接子类或间接子类进行相应的操作虚继承当出现菱形继承时,一个子类可能在追溯父类时找到了同一个父类,这时参数会重复,需要虚继承来解决。举个例子(以下来自百度百科):#include #include class CA{int k; //如果基类原创 2017-10-04 22:50:57 · 625 阅读 · 0 评论 -
C++虚析构函数
续isA):在函数传参时,可以使用子类对父类进行初始化,但是注意,子类中的一些父类不包含的数据成员和成员函数会丢失虚析构函数注意只是为了解决利用派生类生成父类的实例,需要父类具有虚函数,否则将有内存泄漏!虚析构函数是为了解决基类的指针指向派生类对象,并用基类的指针删除派生类对象。换句话说,普通的析构函数在析构IsA这种方式的对象时只能析构了父类对象而无法析构子类对象。如果某个类不包含虚原创 2017-10-04 22:42:10 · 320 阅读 · 0 评论 -
C++常成员函数和常对象、对象指针和对象引用
常成员函数注意:常成员函数不允许调用普通成员函数普通的数据成员,但是没有改数据的权限为什么常成员函数不允许赋值操作?其可以使用 m iX = 10; X" width="600" style="height:auto">从上述例子可以看出,锁定的是*this所指向的内容,因此,this指针所指的地址不可以改变(错例)互为重载:但是这种方法根本不可行,你都不知原创 2017-09-28 23:45:45 · 798 阅读 · 0 评论 -
C++继承和共有、私有、保护继承
继承“继承”就是在一个已存在的类的基础上建立一个新的类。已存在的类称为“基类(base class)”或“父类(father class)”,新建的类称为“派生类(derived class)”或“子类(son class )”。举例:首先声明个人类,工人具有人类的某种特性,因此可以继承人类的某些特性注意:类与类之间必须遵循概念上的父子关系,否则将造成定原创 2017-10-04 22:29:08 · 942 阅读 · 0 评论 -
C++ 隐藏和IsA
隐藏:子类的某些函数与父类的某些函数重名,此时子类继承了父类的函数,此时可以通过特殊的手段访问父类该函数,这种特性被称为隐藏隐藏的方式:隐藏的特性存在后,如果子类的成员函数和父类的成员函数只有参数的不同,在逻辑上不能形成重载关系,只有隐藏的关系,必须使用::来访问父类IsA:父类可以被子类初始化,但是子类不可以被父类初始化(这就是IsA特性)即solider是person但是person不一定原创 2017-10-04 22:37:43 · 889 阅读 · 1 评论 -
C++多重继承和多继承格式
多重继承多继承格式原创 2017-10-04 22:48:22 · 1307 阅读 · 0 评论 -
C++多态、编译时多态和运行时多态、纯虚函数
1. 多态当发出一条命令的时候,不同的对象接受到同样的命令,所做出不同的动作,或者相同对象收到不同消息或不同对象收到相同消息时产生的动作。2. 静态多态(早绑定、编译时多态、重载)程序在编译之前就知道用哪个函数,即在一个类中有相同的函数名,也就是函数重载。3. 动态多态(晚绑定、运行期多态、覆盖 、重写) 使用虚函数,virtual +函数名,实现多态的功能,在不同的类原创 2017-10-19 09:51:30 · 3408 阅读 · 0 评论 -
C++对象指针、对象成员和对象成员指针
对象指针对象成员和对象成员指针对象成员,作为一个对象来说,他成为另外一个类的数据成员对象成员指针,对象的指针作为另外一个类的数据成员 对象成员指针也可以用初始化列表实现对象成员指针指向其某一对象注意!在类中使用了对象成员指针后,在析构函数中要删除指针!原创 2017-09-28 23:33:58 · 2013 阅读 · 0 评论 -
C++再谈拷贝构造函数。(深拷贝,浅拷贝)
类成员、对象成员相关涉及的逻辑(假设坐标类为父类,线段为子类):如果坐标类含有一个默认构造函数(即不带参数的构造函数),那么它在实例化线段对象的时候可以不使用初始化列表;如果坐标类要求必须有xy传入,那么从线段类必须有xy传入,并使用初始化列表,当然,如果定义的量不是常量,也可以用一般的参数传递方式。来自http://www.imooc.com/video/8137>拷原创 2017-09-28 23:24:25 · 292 阅读 · 0 评论 -
C++内存申请、实例化的方式
C++内存管理,我们只能做申请和归还操作申请内存 newint *p = new int释放内存deletedelete p申请块内存用数组,int *arr = new int[10],释放内存用delete[]arr内存操作的注意事项:C语原创 2017-09-27 22:04:32 · 606 阅读 · 0 评论 -
C++String类型、内存分区、构造函数
String类型getline(cin,变量);这是用来获取 用户输入的函数面向对象的基本思想是:用谁,做什么来表达程序的逻辑在代码层面,就是将所有的数据操作转化为成员函数的调用数据的封装的好处可以有效的控制输入的数据的正确性类内定义与内联函数关系:类内定义是指把函数定义都放在类内两者的关系:类内定义相当于在函原创 2017-09-27 22:33:47 · 436 阅读 · 0 评论 -
C++常见误区、常用方法(长期更新)
array0 = array1;// 错误 不能直接把一个数组赋值给另一个数组如果我们希望把一个数组赋值给另外一个则必须自己写程序按顺序拷贝每个元素 for ( int index = 0; index array0[ index ] = array1[ index ];或者使用拷贝构造函数静态与动态内存分配的两个主要区别是静态对象是原创 2017-09-27 21:51:25 · 413 阅读 · 0 评论 -
C++面向对象、const和指针混用、函数参数的默认值
C++三要素:封装、继承、多态const和指针类型const int a和int const a是等价的const int *p= int const *p锁定的是*p所指向的内容,但是p所指向的内容可以改变可以改变地址,不可以改变值int * const p锁定的是p所指向的内容,但是*p所指向的内容可以改变原创 2017-09-27 21:53:54 · 987 阅读 · 0 评论 -
C++内联函数
内联函数与普通函数区别相当于省去了2、4步骤。内联函数的关键字为inlineinline int max(){}内联函数一般适用于结构简单的函数(无回调),一般不要有for循环等语句,调用比较频繁的、较为简单的函数可以使用内敛注意:递归函数不能用内联的方式,即使写了编译器也不会用内联的方式原创 2017-09-27 21:57:05 · 470 阅读 · 0 评论 -
C++对象数组
对象数组,其作用就是批量生成多个实例其实例化方式,以及访问方法以下图为例: 图1m_iY = 20; delete [Ip; p = NULL; return O;" width="600" style="height:auto"> 图2对象数原创 2017-09-28 23:05:51 · 718 阅读 · 0 评论 -
C++重定义
【注意】重定义的源头Coordinate.h文件:class Coordinate{public: Coordinate(int x,int y); ~Coordinate(); void setX(int x); int getX(); void setY(int y); int getY();public: int m_iX; int m_iY;};原创 2017-09-28 23:13:26 · 765 阅读 · 1 评论 -
C++构造函数种类,对象的生命历程
构造函数之默认构造函数(调用的构造函数不用传递参数)两种实例化方式都是默认构造函数构造函数之初始化列表红字部分即为初始化列表:一个引号,多个参数用逗号隔开,赋值用()初始化列表特性:其先于构造函数执行其只能用于构造函数其可以同时初始化多个数据成员【注意】初始化列表的功用:对于类中的静态常量,不能用构造函数来初始化,必须使用初始原创 2017-09-28 13:07:13 · 894 阅读 · 0 评论 -
C++虚函数原理及其使用限制
虚函数的原理默认情况下,子类的数据表中有一个虚函数表指针,其保存着虚函数表的地址。一般情况下,子类没有重写父类的成员函数,则子类的虚函数表指针指向的是父类的虚函数表。若子类中有重写父类的成员函数,则子类中的虚函数表指针会重新定向到自己的虚函数表的位置,因此执行的虚函数位置也是子类的虚函数位置。只需在把基类的成员函数设为virtual,其派生类的相应的函数也会自动变为虚函数。那么原创 2017-10-23 22:35:02 · 517 阅读 · 0 评论