c++
文章平均质量分 69
Number_0_0
努力的从小菜鸡变成战斗机!!!
展开
-
c++中虚函数继承,虚表剖析
虚表概念:对于有虚函数类,编译器都会维护一张虚表,对象的前四个字节就是指向虚表的指针。虚表中存放的是虚函数的地址。虚函数按照其声明顺序存放在虚表中。在派生类中,前面是继承基类的虚函数,若派生类重写了基类中的虚函数则替换为重写后的,派生类自己的虚函数追加在其后。如果派生类继承了两个基类,则派生类自己的虚函数追加到第一个继承的基类的虚表的后面。单继承(没有重写基类的虚函数)class原创 2016-11-16 13:14:23 · 975 阅读 · 0 评论 -
实现一个Add函数,让两个数相加,但是不能使用+、-、*、/等四则运算符。ps:也不能用++、--等等
分析:这又是一道考察发散思维的很有意思的题目。当我们习以为常的东西被限制使用的时候,如何突破常规去思考,就是解决这个问题的关键所在。看到的这个题目,首先我们可以分析人们是如何做十进制的加法的,比如是如何得出5+17=22这个结果的。实际上,我们可以分成三步的:第一步只做各位相加不进位,此时相加的结果是12(个位数5和7相加不要进位是2,十位数0和1相加结果是1);第二步做进位,5+转载 2017-07-15 12:39:19 · 1187 阅读 · 0 评论 -
浅析顺序容器
顺序容器,指的是将一组具有相同类型T的对象,以严格的线性形式组织在一起。顺序由容器可以视为数组和链表的推广。包括三种顺序容器:vector,deque和list。vector是一种顺序容器,存放的元素是以连续的数组的方式存储的,也就是说可以通过v[i]的方式访问vector中的元素,此时vector的访问时间是非常小的。而在对特定的值进行访问时,只能通过遍历vector的方式进行比较,这样的操原创 2017-05-09 14:42:07 · 690 阅读 · 0 评论 -
了解容器
STL是标准的C++库,容器时其中的一个重要组成部分。在实现容器时主要提供了顺序容器和关联容器。STL为容器的遍历提供了迭代器。STL也提供了100多种算法的实现。这些算法包括排序,遍历等等。什么是容器?容器时容纳特定类型对象的集合,因此容器中的对象必须是统一的类型,而且该类型必须是可拷贝构造和赋值的,所以包括的类型有内置的基本数据类型和带有公用拷贝构造函数和赋值操作符的类。STL中提供的原创 2017-05-08 17:41:33 · 467 阅读 · 0 评论 -
指针和引用的区别
【分析】指针和引用都是关于地址的概念,指针指向一块内存,它的内容是所指向内存的地址。而引用是某块内存的别名。指针是作为一个真实的实体而存在的。指针的功能非常强大,指针能够毫无约束的操作内存中的任何东西,由于指针功能强大,所以导致它比较危险。如果使用不当的话会对程序运行造成很大的影响,如果一些场合只需要借用一下某个对象的别名,那么就可以使用引用,而避免使用指针,以免发生意外。程序员可以根据程原创 2017-05-06 14:47:50 · 616 阅读 · 0 评论 -
浅析C++多态
一.什么是多态?C++是一种面向对象的语言,其三种基本特征为:封装,继承和多态。其中,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而多态则是为了实现另一个目的——接口重用!本片文章主要解释了三大特性中的多态。多态是面向对象程序设计的一个重要特征。利用多态性可以设计和实现一个易于扩展的系统。多态就是一个事物有多重状态,在C++程序原创 2017-04-17 16:33:25 · 739 阅读 · 0 评论 -
迷宫——c++实现
本文用c++实现了一个简易的迷宫,用户给迷宫一个入口,程序可应用递归或者循环找到当前的下一个步,如果能走通则将当前道路赋值为2,走不通则为3。此迷宫有两个特点:1.地图数据保存文件中。2、地图空间动态创建出来#define _CRT_SECURE_NO_WARNINGS 1#includeusing namespace std;#define MAX_ROW 10#define原创 2017-03-03 16:27:45 · 1400 阅读 · 0 评论 -
c++中对虚函数的理解
在正式了解虚函数的概念之前,我们先引入多态这个概念:多态:一词最初来源于希腊语,意思是具有多种形式或形态的情形,在C++语言中多态有着更广泛的含义。C++支持多种形式的多态,从表现的形式来看,有虚函数、模板、重载等,从绑定时间来看,可以分成静态多态和动态多态,也称为编译期多态和运行期多态。由上图可知,虚函数属于多态中的动态多态。【动态多态】动态绑定:在程序执行期间(原创 2016-11-11 23:29:32 · 1875 阅读 · 0 评论 -
浅析c++继承方式
继承:1.概念:面向对象的程序设计扩展了基于对象的程序设计,可以提供类型/子类型的关系。这是通过一种被称为继承(inheritance) 的机制而获得的。类不再是重新实现共享的特征,而是继承了其父类的数据成员和成员函数。C++通过一种被称为类派生(class derivation) 的机制来支持继承。被继承的类为基类(base class ),而新的类为派生类(derived cl原创 2016-11-06 11:01:21 · 733 阅读 · 0 评论 -
auto_ptr、shared_ptr、weak_ptr、scoped_ptr用法小结
auto_ptr是现在标准库里面一个轻量级的智能指针的实现,存在于头文件 memory中,之所以说它是轻量级,是因为它只有一个成员变量(拥有对象的指针),相关的调用开销也非常小。 下面的代码来自于VC++ 8.0里面的源码: 里面有个auto_ptr_ref的数据结构,我们可以把它忽略,这个只是内部使用的代理结构,用于一些隐式的const变化,我们客户端代码通常不会直接使转载 2017-08-13 19:21:09 · 497 阅读 · 0 评论