
C++
文章平均质量分 78
insistGoGo
这个作者很懒,什么都没留下…
展开
-
C++和C的语法区别_输入输出
cin和cout使用原创 2011-07-06 13:22:10 · 5370 阅读 · 1 评论 -
C++_多继承与虚基类
多继承的定义:派生类的基类大于一个语法:class 派生类名:继承方式1 基类名1,继承方式2 基类名2...{ };多重继承与构造函数的关系:多重继承时构造函数的作用:1)初始化派生类(自己)2)调用该派生类所有基类构造函数,并且为所有基类传参(参数个数必须包含所有基类所需参数)构造函数语法:派生类构造函数名(总参数表列): 基类1构造函数(参数表列),原创 2011-08-02 13:25:41 · 6085 阅读 · 5 评论 -
C++_多态与虚函数
什么是多态?一个 “操作” 随着所 ”传递或捆绑的对象类型的不同 “ 能够做出 ”不同的反应“,其行为模式称为多态。即,对这个操作,能接受不同类型的参数,而且在处理参数时,会根绝其类型做出不同的反应。为什么要引入多态?针对由继承得到一类对象,在处理这类对象时,能够以同一操作处理完所有对象。遇到的问题:#includeusing namespace std;clas原创 2011-07-30 00:50:35 · 1988 阅读 · 1 评论 -
C++ 虚函数表解析(写的很好,转过来看看)
原作者:陈皓源地址:http://blog.youkuaiyun.com/haoel/article/details/1948051前言C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的转载 2013-05-16 21:22:25 · 1265 阅读 · 0 评论 -
C++_转换运算符_const_cast
const_cast作用:作用:去除变量的const或volatile属性说明,由于不了解volatile,这里不讲关于volatile的知识。const_cast的用途:用途:有时候需要把常量的值赋值给普通变量。const char* max(const char* s1,const char* s2){ return strcmp(s1,s2) > 0 ? s1原创 2013-05-17 11:30:32 · 1229 阅读 · 0 评论 -
C++_转换运算符_dynamic_cast
dynamic_cast在什么时候使用:使用时间:子类和父类之间的多态类型转换引入dynamic_cast的原因:举例说明:#include using namespace std;class Base{public: virtual void BaseAAA() { cout<<"BaseAAA"<<endl; } virtual void AAA()原创 2013-05-17 21:45:59 · 1596 阅读 · 1 评论 -
C++_转换运算符_reinterpret_cast
reinterpret_cast作用:对数据类型重新解释,用来处理无关类型的相互转换,属于强制类型转换。reinterpret_cast语法:reinterpret_cast (expression)说明:(1)它返回一个新值,该值的类型与expressoin的类型不同,但两个值的二进制位完全相同。举例一:说明该值的类型与expressoin的类型不同,但两个值原创 2013-05-17 17:32:06 · 1349 阅读 · 0 评论 -
C++_转换运算符_static_cast
static_cast的作用:前提:互换的两种类型必须是相关的类型,而且不针对多态(1) 在非多态的类层次中,子孙对象指针或引用的互换(2) 空指针与其他类型指针的呼唤(3) 用于基本数据类型之间的转换即,非多态的类层次之间以及基本数据类型之间的转换注意 : (0) static_cast 中static表示在类型转换时,是在编译时进行的,其与dynamic对应原创 2013-05-19 10:47:20 · 1250 阅读 · 0 评论 -
C++_继承与派生
继承的意义?使程序的设计更符合发展规律,即事物的发展是一个从低级到高级的发展过程,类的继承也是反映由原始的简单代码到丰富的高级代码的过程。它能帮助我们描述事物的层次关系,有效而精确的理解事物,理解事物直到本质。什么叫继承?(1)继承使类与类之间建立起一种上下级的层次关系(2)子类可以重复使用父类的操作和数据成员,子类可以声明新的属性和操作,还可以剔除不适合自己用途的父类操作。为原创 2011-07-29 23:32:24 · 7256 阅读 · 1 评论 -
BOOST的Singleton模版详解(转载)
好文章,转载于fullsail博客:BOOST的Singleton模版详解首先要说明,这个准确说并不是BOOST的singleton实现,而是BOOST的POOL库的singleton实现。BOOST库中其实有若干个singleton模版,这个只是其中一个。但网上大部分介绍的介绍的BOOST的Singleton实现都是这个,所以大家也就默认了。而且这个的确算是比较特殊和有趣的一个实现。转载 2013-07-23 17:42:39 · 1142 阅读 · 0 评论 -
static对象
static对象:一旦被创建,就一直存在,直到程序退出。根据静态对象的位置不同,可以分为两类:non-local static object与local static object具体来说:local static object:指函数中用static修饰符修饰的object生命期起始时间:在函数第一次调用时构造初始化。生命期终止时间:程序结束non-local stati原创 2013-07-23 20:03:40 · 4324 阅读 · 0 评论 -
C++_静态成员
C语言中的Static(不涉及到类)一句话描述C语言中static的作用:无论是针对变量还是函数:static作用都是修改变量的作用域静态成员的分类:静态成员包括静态变量和静态函数两部分静态变量静态全局变量引入的原因(作用):隐藏变量(主要功能)说明:即加了static,就会对其它源文件隐藏。具体来说,如果直接定义全局变量,则该全局变量相当于一个项目变量,即是在原创 2011-08-04 22:49:58 · 1979 阅读 · 0 评论 -
C++_Const的使用
const的作用:表示被修饰变量受到强制保护,可以预防意外的变动,能提高程序的健壮性。const的用处:修饰函数的参数、返回值、函数的定义体,变量等,其中前面三个是其魅力所在。根据函数的组成,可以把const的作用分成三部分:const修饰函数的参数,const修饰函数体,const修饰函数返回值。一、用const 修饰函数的参数什么时候使用const:如果在函数体中只是对原创 2011-08-04 12:35:10 · 2107 阅读 · 0 评论 -
构造函数、析构函数与虚函数的关系
1、为什么构造函数不能是虚函数?因为:从使用上来说,虚函数是通过基类指针或引用来调用派生类的成员的,则在调用之前,对象必须存在,而构造函数是为了创建对象的。2、为什么在派生类中的析构函数常常为虚析构函数注意,默认不是析构函数一句话,是为了避免内存泄露如果不考虑虚函数的状况,给出一个基类和派生类,如果调用派生类的析构函数时,肯定会引发调用基类的析构函数,这和析构函数是不是虚函原创 2013-05-16 20:35:09 · 1722 阅读 · 1 评论 -
内存对齐(成员涉及基本变量和位域,不涉及虚函数、虚基类)
转载于百度百科:http://baike.baidu.com/view/4786260.htm说明:在此文中,类中成员涉及基本变量和位域,不涉及虚函数、虚基类内存对齐的定义:内存对齐是编译器的管辖范围,编译器将程序中的每个数据单元安排在适当的位置上。对于大部分程序员来说,内存对齐对他们来说都应该是透明的。但是,C语言允许程序员干预内存对齐,如果你想了解更加底层的秘密,内存对齐对你就转载 2013-05-22 16:01:03 · 1416 阅读 · 0 评论 -
Visual Leak Detector 2.2.3 Visual C++内存检测工具(转载)
转载于http://blog.youkuaiyun.com/akof1314/article/details/7549979,在此谢过。 Visual Leak Detector是一款免费的、健全的、开源的Visual C++内存泄露检测系统。相比Visual C++自带的内存检测机制,Visual Leak Detector可以显示导致内存泄露的完整内存分配调用堆栈。主页地址:http://vld.转载 2013-10-01 21:15:50 · 1344 阅读 · 0 评论 -
C/C++ 内存泄漏检测工具 Visual Leak Detector(转载)
转载于http://www.perfect-is-shit.com/2013/03/21/visual-leak-detector/C/C++ 内存泄漏检测工具 Visual Leak Detector这几天在用VLD(Visual Leak Detector)来检查内存泄露,感觉很好、很强大,所以推荐给大家。下面的博文不会面面俱到,这也不是我的目的。我的目的是再看了这篇文章以转载 2013-10-01 21:17:45 · 5058 阅读 · 0 评论 -
C++面试题
题目和答案均是从网上摘录,答案有改动1、指针的优点和缺点优点:灵活高效(1)提高程序的编译效率和执行速度(数组下标往下移时,需要使用乘法和加法,而指针直接使用++即可)(2)通过指针可使用主调函数和被调函数之间共享变量或数据结构,便于实现双向数据通讯。(3)可以实现动态的存储分配。(4)便于表示各种数据结构,如结构体,编写高质量的程序。缺点:容易出错(1)可能变原创 2013-06-04 20:48:25 · 2665 阅读 · 4 评论 -
C++命名规则
C++命名规范的整体原则: 同一性在编写一个子模块或派生类的时候,要遵循其基类或整体模块的命名风格,保持命名风格在整个模块中的同一性。 标识符组成标识符采用英文单词或其组合,应当直观且可以拼读,可望文知意,用词应当准确。 最小化长度 && 最大化信息量原则在保持一个标识符意思明确的同时,应当尽量缩短其长度。转载 2012-08-18 19:46:31 · 989 阅读 · 0 评论 -
面向对象和面向过程的区别
面向过程一种以事件为中心的编程思想,以功能(行为)为导向,按模块化的设计,就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。 面向对象一种以事物为中心的编程思想,以数据(属性)为导向,将具有相同一个或者多个属性的物体抽象为“类”,将他们包装起来;而有了这些数据(属性)之后,我们再考虑他们的行为(对这些属性进行什么样的操作),是把构成问题事转载 2012-07-28 14:44:13 · 2034 阅读 · 0 评论 -
C++_拷贝构造函数
拷贝构造函数原创 2011-07-15 23:54:03 · 1625 阅读 · 1 评论 -
C++_运算符重载
什么是运算符的重载? 运算符与类结合,产生新的含义。 为什么要引入运算符重载? 作用:为了实现类的多态性(多态是指一个函数名有多种含义)怎么实现运算符的重载?方式:类的成员函数 或 友元函数(类外的普通函数)规则:不能重载的运算符有 . 和 .*原创 2011-07-23 11:54:31 · 80187 阅读 · 25 评论 -
C++_函数模板基础知识
为什么要引入模板:为了避免代码重复,程序员可以编写脱离数据类型通用模板。模板的分类:函数模板 + 类模板注意:模板的声明或定义只能在全局,命名空间或类范围内进行。不能在函数内进行,比如不能在main函数中声明或定义一个模板。函数模板:定义:函数模板:关键词在后两个字,模板:提供一原创 2011-07-26 17:41:47 · 3760 阅读 · 0 评论 -
C++_模板举例_使用模板实现集合类(堆栈)
//stack集合类是一个简单的堆栈的实现。//这里有两个模板参数,T和size,指定堆栈中的元素类型和堆栈中项数的最大值。//push 和 pop成员函数添加和删除堆栈中的项,并在堆栈底部增加。#include #include #include usi原创 2011-07-27 19:32:47 · 3879 阅读 · 0 评论 -
C++_类模板基础知识
类模板原创 2011-07-26 18:39:25 · 3962 阅读 · 3 评论 -
C++_文本文件读写常用代码
数据测试:有一个文件file.txt,内容入下:This life will always love you.Let me always love you! If you have locked in my memory, and that the key to kee原创 2011-07-29 00:00:56 · 4066 阅读 · 0 评论 -
C++_输入常用函数
C++ 常用输入有:cin、cin.get( )、cin.getline( )C常用输入:getline( )、gets( )1、cin:-- 相当于scanf功能:输入字符串到字符输出,遇空格、Tab、回车结束代码://输入字符串到字符数组#include using原创 2011-07-29 01:08:42 · 1516 阅读 · 1 评论 -
C++_引用
C++引用的应用:原创 2011-08-02 22:14:18 · 1286 阅读 · 0 评论 -
C++_Const的使用(2)
与类有关的const原创 2011-08-04 15:16:46 · 1224 阅读 · 0 评论 -
C++_类型转换
类型转换:将一种类型的值转换为另一种类型的值类类型:class、stuct、union类型标准类型:除类类型外的所有类型,如int类型种类:类型转换有4种:1)2)3)4)原创 2011-08-05 01:26:45 · 1387 阅读 · 0 评论 -
C++_友元函数
1、为什么要引入友元函数:在实现类之间数据共享时,减少系统开销,提高效率 具体来说:为了使其他类的成员函数直接访问该类的私有变量 即:允许外面的类或函数去访问类的私有变量和保护变量,从而使两个类共享同一函数 优点:能够提高效率,表达简单、清晰 缺点:友元函数破环了封装机制,尽量不使用成员函数,除非不得已的情况下才使用友元函数。2、什么时候原创 2011-07-15 15:17:06 · 34974 阅读 · 29 评论 -
C++_动态存储空间的分配和释放
使用new申请空间:特点: 1、没有名字,只能通过指针间接访问它们。 2、从堆中申请空间分类:变量: 语法:指针变量 = new 类型名; Delete 指针变量 举例:int *p; p=new int;原创 2011-07-15 14:17:54 · 9821 阅读 · 2 评论 -
C++_指针悬挂和赋值操作符的重载
指针悬挂:问题:使用new申请的内存内存空间无法访问,也无法释放。原因:直接对指向new申请的存储空间的指针变量进行赋值修改后果:失去了原来的地址,原来的空间无法访问也无法释放,造成内存泄漏 还可能造成同一个内存释放两次容易引起指针悬挂的方式:对象的初始化和对象间赋值容易引起指针悬挂的条件:类中含有指针类型的成员时,使用默认的拷贝构造函数和赋值函数都会原创 2011-07-22 16:50:09 · 4515 阅读 · 5 评论 -
C++_构造函数和析构函数
构造函数:作用: 1)分配空间:分配非静态数据成员的存储空间 2)初始化成员:初始化非静态数据成员分配空间: 1)含有指针变量,需要程序员显式申请空间(使用new申请) 2)非指针变量:由系统自动分配空间初始化成员: 1)使用赋值语句初始化:一般的变量 2)使用表达式表初始化:一般的变量 + Const成员,引用成员,对象成员调用时原创 2011-07-15 17:40:08 · 2164 阅读 · 0 评论 -
C++_文件读写
C++_文件读写原创 2011-07-28 22:05:51 · 8598 阅读 · 2 评论