
C++
ricardoleo
韬光养晦,厚积薄发。
展开
-
C++:实现日期类
在学习了 C++ 的类和对象后,利用 C++ 对日期类功能的基本实现。基本操作对日期的基本操作无非就是日期直接加减,以及日期之间的天数计算等。这里,用 C++ 类的构造函数及运算符重载来实现。#pragma once#include <iostream>using namespace std;class Date {public: Date(int...原创 2018-07-09 17:08:07 · 562 阅读 · 1 评论 -
从造轮子做起:scoped_ptr
上篇博客讲到 auto_ptr 的时候,说到一定不要使用。原因就是它的拷贝构造也好还是赋值运算符重载也好,执行完自己什么都没有了。今天讲的这个 scoped_ptr 这个更 diǎo ~~~,想复制我的?不存在的?还能让你拷贝了。这是俺的私有财产,谁都别想分!就是这个意思。#include <iostream>template <typename T>clas...原创 2018-08-16 19:48:07 · 280 阅读 · 0 评论 -
从造轮子做起:auto_ptr
实现简单版本的 auto_ptr 智能指针。我个人认为,这个 auto_ptr 千万不要使用,因为它的管理权转移法真的很不符合我们的预期。ps:我给你拷贝我的东西,结果拷贝完,我的没有了?合适吗?但是还是理解实现一下这个历史包袱问题~~~#include &lt;iostream&gt;template &lt;typename T&gt;class AutoPtr {public...原创 2018-08-16 19:41:25 · 275 阅读 · 0 评论 -
从造轮子做起:List
今天来造一个简单版本的 List 。#include <iostream>using namespace std;template <class T>struct ListNode{ T _val; ListNode* _next; ListNode(T val) :_val(val) , _next(nu...原创 2018-08-16 08:33:53 · 234 阅读 · 0 评论 -
C++ 继承总结
C++ 继承总结继承1、三种类成员访问限定符继承public:公有继承protected:保护继承private:私有继承2、公有继承、保护继承、私有继承基类的私有成员在派生类是无法被访问的,如果一个基类不想让基类对象之间访问自己的成员,但是需要在派生类中访问,那么可以将该成员设置为 protected (保护类)。公有继承是一个接口继承,所有基类可用的成员...原创 2018-08-13 10:29:29 · 237 阅读 · 0 评论 -
从造轮子做起:String
实现简单的 String 类,采用深拷贝的形式。#include <iostream>#include <string.h>#include <assert.h>using namespace std;class String {public: String(const char* str = " ") { size_t ...原创 2018-08-15 17:29:38 · 213 阅读 · 0 评论 -
C++ 模板总结
C++ 模板1、模板概念模板是泛型编程的基础。所谓泛型编程就是编写与类型无关的逻辑代码,是一种复用的方式。模板分为模板函数和模板类。2、typename 与 class template <class T> // 采用 class 来声明模板 class { }; template <typename T> // 采...原创 2018-08-15 16:24:11 · 431 阅读 · 0 评论 -
从造轮子做起:Vector
简单实现 STL 库中 vector。template<class T>class Vector {private: void _Erase(T* pos) { if (pos == NULL) return; while (pos + 1 < _finish) { *pos = ...原创 2018-08-15 09:30:07 · 244 阅读 · 0 评论 -
C++ 多态总结
C++ 多态1、虚函数类的成员函数前面加上 virtual 关键字,这个成员函数称为虚函数。2、虚函数重写当在子类定义了一个与父类完全相同的虚函数时,则称子类的这个函数重写了父类的虚函数。3、多态静态多态:利用函数重载,编译时确定。动态多态:利用类继承,虚函数机制实现。运行时确定。4、构造函数不能定义成虚函数在构造一个对象的时候,必须知道对象的实际类型,而虚...原创 2018-08-15 09:25:56 · 319 阅读 · 0 评论 -
C++:函数重载、缺省参数及命名空间的理解
类型在 C 语言中,类型有内置类型与自定义类型之分。其中内置类型就是常常用到的 int、char等。而自定义类型就是定义的一些数据结构struct/enum/union等,如 typedef struct LinkNode。而在 C++ 当中,类型也分为内置类型与自定义类型。内置类型与 C 语言一致。而自定义类型分为:struct/class/enum/union,我们发现,相比于 C ,...原创 2018-07-09 18:50:14 · 247 阅读 · 0 评论 -
从造轮子做起: shared_ptr
由于 auto_ptr 与 scoped_ptr 都有一些弊端,所以 shared_ptr 出现了。它采用了引用计数的方式来处理拷贝构造与赋值运算。template <typename T>class SharedPtr {public: SharedPtr(T* ptr) :_ptr(ptr) { _count = new size...原创 2018-08-16 20:29:51 · 310 阅读 · 0 评论