
c++
文章平均质量分 86
溪仔的阿宝呀
FOLLOW
展开
-
模拟实现string类(c++)
#include#includeusing namespace std;class STRING {public:STRING(const char* m = " ")//构造函数(赋值为空可以包含无参的情况):s(new char[strlen(m) + 1]){strcpy(s, m);}STRING(const STRING &m)//拷贝构造函数原创 2017-07-02 18:09:43 · 294 阅读 · 0 评论 -
考试题/(ㄒoㄒ)/~~
我的考试题,我得反省一下我记几,啦啦啦... 1. 设计一个点类Point,其中包含点的坐标x和y 共2个数据成员,并设计1个友元函数,计算两点间的距离,并编写程序测试。#include#includeusing namespace std;class Distance;class Point {private:float x, y;publ原创 2017-07-03 21:26:29 · 506 阅读 · 0 评论 -
内存对齐和位域
结构体的内存结构当我们解决实际问题时,我们会发现编译器提供给我们的内置类型其实不够用,没有办法用同一种类型存储多种类型的数据,C语言中有自己的自定义类型,比如结构、位域、联合、枚举、typedef关键字等。下面我就简单的介绍一下结构和位域。结构:在一个名字下的一组变量,有时也称为聚集数据类型。位域:这是结构的一种变形,允许对字中的位进行访问。当我们申请一个结构体时,它会占多少个字节原创 2017-07-20 14:44:14 · 379 阅读 · 0 评论 -
栈帧(函数调用)
我们都知道在写一个函数时会使用形参,形参实例化时会形成一份拷贝,调用这个函数时会把实参传进去,调用完之后那些临时拷贝又被释放,那么计算机在调用函数时是如何进行形参的保存和释放的呢?又如何返回形参?我们可以通过栈帧来理解函数的调用原理。首先,栈是从高地址向低地址延伸的。每个函数的每次调用都有它自己独立的一个栈帧,这个栈帧中有它所需要的各种信息。每个函数都有自己的一份esp和ebp,而CPU只有一原创 2017-07-21 21:18:25 · 495 阅读 · 0 评论 -
继承性
今天呢我们来看一下C++中的继承^-^.继承性是一个非常自然的概念,现实中很多事物是具有继承特性的。人们一般用层次分类的方法来描述它们的关系。在这个分类树中建立了一个层次结构,最高层次的最普遍、最一般的。每一层都比它的前一层更具体,低层含有高层的特性,同时也与高层有细微的不同,它们之间是基类和派生类的关系。类的继承是一种复用手段,新的类从已有类那里得到已有的特性并在其基础上翻译 2017-09-07 20:43:18 · 472 阅读 · 0 评论 -
智能指针
当类中有指针成员时,一般有两种方式来管理指针成员:一是采用值型的方式管理,每个类对象都保留一份指针指向的对象的拷贝;另一种更优雅的方式是使用智能指针,从而实现指针指向的对象的共享。那么智能指针是什么呢?智能指针是存储指向动态分配(堆)对象指针的类。很多人都以为智能指针是一个指针,但其实它是一个模板,它可以自动释放所指向的对象。我们来看一下:1. Auto_ptrauto_ptr在原创 2017-09-26 19:47:43 · 166 阅读 · 0 评论 -
多态及虚函数
在面向对象方法中,所谓的多态性就是不同对象在收到相同消息时,产生不同的行为。在C++中,要做到“一个接口,多种方法”。 我们把在运行之前就完成的联编(是指一个计算机程序自身彼此关联的过程)称为静态联编;在运行时才完成的联编称为动态联编。静态联编支持的多态性称为编译时多态性,通过重载实现,而动态联编所支持的多态性称为运行时多态性,是通过虚函数来实现的。 在某基类中声明为virtual原创 2017-09-10 19:20:27 · 164 阅读 · 0 评论 -
C++迭代器
迭代器是什么呢?迭代器就是可以以一个对象表现出容器元素的位置,实践这个概念的对象就是所谓的迭代器(结点的指针)。迭代器是一个可遍历STL所有元素的对象。 (遍历是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。)迭代器对指针的一些基本操作如*、->、++、==、!=、=进行了重载,使其具有了遍历复杂数据结构的能力。Opreator *:返回当前位置上的元素值。如果该元素拥有成原创 2017-10-17 15:51:56 · 214 阅读 · 0 评论