c++
wpeaceminusone
这个作者很懒,什么都没留下…
展开
-
浅谈C++继承
说起C++,就一定会想到C++的三大特性,封装、继承和多态。那么这篇博客就来谈一谈这三大特性之一的继承。 1.继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持 原有类特性的基础上进行扩展,增加功能。这样产生新的类,称派生类。继承呈现了面向对象程序设 计的层次结构,体现了由简单到复杂的认知过程。 继承的定义格式 2原创 2017-04-13 15:10:41 · 237 阅读 · 0 评论 -
String类的深拷贝浅拷贝引用计数
在模拟实现String类的过程中,不可避免的会遇到深拷贝浅拷贝的问题,下面就深拷贝浅拷贝做一个简介。浅拷贝:也称位拷贝,编译器只是直接将指针的值拷贝过来,结果多个对象共用同一块内存,当 一个对象将这块内存释放掉之后,另一些对象不知道该块空间已经还给了系统,以为还有效,所以在对这段内存进行操作的时候,发生了访问违规。深拷贝:深拷贝是指源对象与拷贝对象互相独立,其中任何一个对象的改动都不会对另外一个对象原创 2017-03-30 17:18:13 · 305 阅读 · 0 评论 -
this指针
在每一个成员函数中都包含一个特殊的指针,这个指针的名字是固定的,称为this。它是指向本类对象的指针,它的值是当前被调用的成员函数所在的对象的起始地址。举一个简单的例子来说:a.volume函数要计算height*width*length的值,实际上是执行:(this->height)(this->width)(this->length) 由于当前this指向a,因此相当于执行(a.height)(原创 2017-03-14 14:02:03 · 264 阅读 · 0 评论 -
c++的多态
什么是多态?多态:一词最初来源于希腊语,意思是具有多种形式或形态的情形, 在C++语言中多态有着更广泛的含义这要先从对象类型说起 class Base {}; class Derived1 : public Base {}; class Derived2 : public Base {}; int main() { Derived1 pd1 = new原创 2017-04-20 16:23:33 · 261 阅读 · 0 评论 -
C++智能指针
RAII:RAII是一种规范,一种解决问题的思想。定义一个类来封装资源的分配和释放,在构造函数完成资源的分配和初始化,在析构函数完成资源的清理,可以保证资源的正确初始化和释放。 注意:RAII并不等同智能指针!智能指针是RAII的一种应用,智能指针是能够像指针一样智能的管理对象的释放问题。auto_ptr: (有缺陷)templete<classT>class AutoPtr{publi原创 2017-05-09 16:42:01 · 297 阅读 · 0 评论 -
C++模板
首先思考如何编写一个通用的加法函数? 你可能会想用函数重载或者用预处理程序,但他们都有缺点,所以这时候我们就需要使用泛型编程 泛型编程:编写与类型无关的逻辑代码,是代码复用的一种手段。模板是泛型编程的基础。 模板又分为函数模板和类模板。模板函数代表了一个函数家族,该函数与类型无关,在使用时被参数化,根据实参类型产生函数的特定类型版本。 模板是一个蓝图,它本身不是类或者函数,编译器用模板产原创 2017-04-27 13:15:05 · 342 阅读 · 0 评论