c++
文章平均质量分 51
get_it_started
这个作者很懒,什么都没留下…
展开
-
C++入门
C++是在C语言基础上进行开发的一种面向对象的编程语言。1983年,由贝尔实验室在C语言基础上推出了C++,C++应用广泛,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。 C++的语言主要特点有支持数据封装、隐藏,支持继承和重用,支持多态性。 接下来就简单梳理一些C++的基础知识点: 1.命名空间 一原创 2018-03-10 20:07:58 · 152 阅读 · 0 评论 -
C++实现双向链表(List)
list是C++容器类中的“顺序存储结构”所包含的一种结构。list是非连续存储结构,具有双链表结构,支持前向/后向遍历,且支持高效的随机删除/插入。 实现代码如下:**list.h**#pragma once#include<stdio.h>#include<assert.h>#include<iostream>using namesp...原创 2018-05-13 19:59:00 · 1525 阅读 · 0 评论 -
C++ 继承&隐藏&菱形继承
一、继承 继承是c++中的一种机制,是面向对象复用的重要手段。通过继承机制,可以利用已有的类来定义新的类,新的类不仅拥有新的成员,同时也拥有旧的成员。把已存在的类称为父类或基类,新定义的类称为子类或派生类,继承是类之间的关系建模。class Person{ //Person是父类public: Person(const string& name) ...原创 2018-05-05 20:26:49 · 856 阅读 · 0 评论 -
引用计数写实拷贝
首先要了解的是计数写实拷贝是在浅拷贝的基础上进行的。 什么是浅拷贝?用一张图来解释 计数写实拷贝是通过设置计数器Pcount来解决: Pcount的初始值为0,s1指向空间时Pcount+1,即Pcount=1,s2拷贝s1时,Pcount再+1,即Pcount=2;进行析构时,- -Pcount,当Pcount的值为0时再进行析构。这样解决了浅拷贝中重复析构同一空间的问题。 实现计数...原创 2018-04-20 19:21:01 · 184 阅读 · 0 评论 -
String类 深浅拷贝的传统写法和现代写法
浅拷贝也称值拷贝,在进行赋值时增加了一个指针,且该指针与原指针指向了同一内存空间,那释放这一空间,会导致其他对象所使用的空间也被释放,即程序会调用两次析构函数,同一块空间会被析构两次,结果是程序会出错、崩溃。 代码如下:#define _CRT_SECURE_NO_WARNINGS 1#include <iostream>using namespace std;//Str...原创 2018-04-19 15:01:07 · 238 阅读 · 0 评论 -
日期类(c++)
该函数的功能是实现日期的相关操作,包括:1.计算一个日期加上任一天数后的日期;2.计算一个日期减去任一天数后的日期;3.计算俩日期之间相差的天数;4.对日期加1,包括前置++和后置++;5.对日期减1,包括前置--和后置--。代码如下:#define _CRT_SECURE_NO_WARNINGS 1#include<iostream>#include<assert.h>...原创 2018-03-28 21:47:31 · 1332 阅读 · 0 评论 -
c++ 动态内存管理 new/delete
c语言是通过使用malloc、calloc、realloc、free进行内存管理 malloc:直接开辟空间 calloc:开辟空间时会进行初始化 realloc:它的函数原型为”void *realloc(void *ptr,size_t size)”,当参数 *ptr为空时,realloc等价于malloc;realloc可用于扩容,需要重新开空间。 c++中使用new、delete来...原创 2018-04-09 15:04:15 · 162 阅读 · 0 评论 -
c++:const&内联&友元&static
1.查看目录下所有子目录与文件:ls,格式:ls 选项 目录或文件。 选项: ls -a 目录(列出目录下所有文件) ls -d 目录(将目录像文件一样展示,不是显示其下的文件) ls -l 目录(显示目录或文件的详细信息) ls -t 目录(目录按时间排序) ls -r 目录(反向排序) ls -s(按各目录容量大小显示) ls -R(显示目录下所有内容);原创 2018-03-24 18:03:30 · 345 阅读 · 0 评论 -
c++ 引用
引用就是引用某一变量的别名,其声明格式为:类型& 引用变量名=已定义的变量名。int& a=b//a是b的别名1.引用的特点有: 1)一个变量可取多个别名; 2)引用必须初始化; 3)引用只能在初始化时使用一次,不能再成为其他变量的别名; 4)引用并不是定义了一个新的变量,它与目标变量指向同一内存空间。void test(){int a=2;int& b=a;a=3;b=4;in原创 2018-03-17 19:15:15 · 126 阅读 · 0 评论 -
C++实现动态顺序表(vector)
vector是连续存储结构,支持随机的高效的随机和在尾部进行插入、删除操作,其它位置的插入、删除操作相对来说效率较低。 vector相当于一个数组,但它的数组空间大小需要写一程序来实现。 它的内存分配原理大概可分为下面几步: 1)首先分配一块内存空间进行存储; 2)当所需存储的数据超过分配的空间时,再重新分配一块空间; 3)将旧元素复制到新空间; 4)释放旧空间。实现代码如下:...原创 2018-05-15 20:45:51 · 320 阅读 · 0 评论