C++
zangyuanan320
just do IT!
展开
-
【C语言】【面试题】C++中String类引用计数器的浅拷贝写法与深拷贝写法
Linux操作下String类的实现--引用计数器 1.引用计数器写法一写法一个人比较喜欢叫他双指针法,因为他是在类里面创建了两个指针来实现的一个是指针_str,另外一个是用来保存指向同一块空间个数的指针_pRefCount.class String{public: String(char* str = "") :_str(new char[strlen(str)原创 2016-05-30 15:04:03 · 313 阅读 · 0 评论 -
【C语言】String类的写时拷贝
有了引用计数器以后为什么还有写时拷贝呢? 因为当我有两个String类s1,s2都是指向同一块空间“helle”,当我想将s1修改成“hello”时,我只想将s1指向的空间修改,而不想将s2修改,显然引用计数器不能解决这个问题,所以就有了更完善的写法--写时拷贝。写时拷贝class String{public: String(char* str = "") :_s原创 2016-05-30 15:04:06 · 378 阅读 · 0 评论 -
【C++】菱形继承与虚拟菱形继承的对比分析
在继承中经常会遇到这种情况:有一个超类A,子类B1,B2继承了A,而类D又继承了父类B1,B2。在这种情况下如果按照我们以前的正常的菱形继承的话会有一个问题是子类C会继承两次超类A中的成员,当在C中想访问继承来自B1,B2中A的元素会出现两个问题: 问题一、数据的冗余 问题二、访问的二意性出现了这种问题那么我们该如何解决呢? C++中为了解决这个问题引入了虚拟菱形继承,那么虚拟菱原创 2016-05-30 15:04:12 · 337 阅读 · 0 评论 -
【C++】智能指针的原始写法、scoped写法、shared写法
智能指针的三种常见写法: 一、最开始的原始写法,原始写法可以理解为指针转移的方法。templateclass AutoPtr{public: AutoPtr() :_ptr(NULL) {} AutoPtr(T* ptr) :_ptr(ptr) {} ~AutoPtr() { if (_pt原创 2016-05-30 15:04:24 · 284 阅读 · 0 评论 -
【C++】日期类+日期万年历+日期计算器
对于日期类,我们主要实现一下日期类的基本函数,构造,拷贝构造,运算符的重载,析构。当然这里运算符的重载需要实现的还是挺多的,如:=、、=、等#include using namespace std;class Date{public: Date(int year = 1990, int month = 1, int day = 1) { _year = y原创 2016-05-30 15:04:15 · 745 阅读 · 0 评论 -
【C++】模版的概念、使用方法和深入了解
模板是泛型编程的基础。所谓泛型编程就是编写与类型无关的逻辑代码,是一种复用的方式。模板分为模板函数和模板类。 模板函数假设现在要实现一个比较两个数是否相等的重载函数。bool IsEqual (int left, int right){ return left == right;}bool IsEqual (const string& left , const string原创 2016-05-30 15:04:09 · 203 阅读 · 0 评论 -
【C语言】【面试题】C++中String类浅拷贝,深拷贝的传统写法与现代写法
C++ 的一个常见面试题是让你实现一个 String 类,在这我把String类的各种写法写了一下 1.浅拷贝#define _CRT_SECURE_NO_WARNINGS 1#includeusing namespace std;//1.浅拷贝class String{public: String(char* str) :_str(str) {}原创 2016-05-30 15:03:58 · 386 阅读 · 0 评论 -
设计模式之单例模式
单例模式的介绍以及与RAII的关联原创 2016-08-14 15:42:13 · 544 阅读 · 0 评论