2018年3月2日
摘要: 函数重载的意思是在一个作用域内(命名空间内)定义了某个或某些具有相同名称的函数,但是他们的参数列表和定义(实现)不相同,如果相同的话,就没啥意义了。当调用一个重载函数时,编译器会通过所使用的参数类型、个数等与定义中的参数类型进行比较,决定选用最合适的定义,这个选择重载函数的过程就是重载决策。 比如我 阅读全文
posted @ 2018-03-02 16:38 greathuman 阅读(1146) 评论(0) 推荐(0) 编辑
摘要: 转自:C++中,new/delete和malloc/free的区别 1、new/delete是C++的操作符,而malloc/free是C中的函数。 2、new做两件事,一是分配内存,二是调用类的构造函数;同样,delete会调用类的析构函数和释放内存。而malloc和free只是分配和释放内存。 阅读全文
posted @ 2018-03-02 11:29 greathuman 阅读(620) 评论(0) 推荐(0) 编辑
摘要: 虽然我们已经知道了什么是继承和多态,也明白了多态依赖于继承,但是在多态中存在哪些问题呢? 多态中可能存在的内存泄露问题 例如下面的程序中,在圆形Circle的类中定义一个圆心的坐标,并且坐标是在堆中申请的内存,则在mian函数中通过基类指针操作派生类对象的成员函数是没有问题的,可是在销毁对象内存的时 阅读全文
posted @ 2018-03-02 11:22 greathuman 阅读(430) 评论(0) 推荐(0) 编辑
  2018年3月1日
摘要: 第3章 继承与多态 面向对象的三大特征:封装,继承,多态。 3.1 继承 3.1.1 继承的概念 注意: 1. 基类的构造函数、拷贝构造函数和析构函数不可以被继承。 2. 派生类继承了基类的全部数据成员和除了构造、析构函数之外的所有成员函数。派生类对于基类成员的继承是没有选择的,不能选择接收或舍弃基 阅读全文
posted @ 2018-03-01 16:05 greathuman 阅读(1205) 评论(0) 推荐(0) 编辑
摘要: from here 对于习惯使用C进行开发的朋友们,在看到c++中出现的&符号,可能会犯迷糊,因为在C语言中这个符号表示了取地址符,但是在C++中它却有着不同的用途,掌握C++的&符号,是提高代码执行效率和增强代码质量的一个很好的办法。在 c++学习提高篇(3) 隐式指针的文章中我详细介绍了在隐式指 阅读全文
posted @ 2018-03-01 15:34 greathuman 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 类型转换机制可以分为:隐式类型转换 和 显示类型转换(强制类型转换) C中的类型转换: 事情要从头说起,这个头就是C语言.我们已经习惯了使用C-like类型转换,因为它强大而且简单. 主要有以下两种形式: (new-type) expression new-type (expression) C++ 阅读全文
posted @ 2018-03-01 14:57 greathuman 阅读(376) 评论(0) 推荐(0) 编辑