![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 78
暗夜公爵LKN
武汉光电国家实验室 信息存储实验室 虚拟化方向
展开
-
C++中string类使用详细说明
之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。 首先,为了在我们的程序中使用string类型,我转载 2015-01-29 15:29:41 · 621 阅读 · 0 评论 -
成员初始化列表与构造函数体区别
C++ Primer中在讲构造函数初始化列表的时候有这么一段话: 无论是在构造函数初始化列表中初始化成员,还是在构造函数体中对它们赋值,最终结果是相同的。不同之处在于,使用构造函数初始化列表的版本表示初始化数据成员,没有定义初始化列表的构造函数版本在构造函数体中对数据成员赋值。首先把数据成员按类型分类 1、内置数据类型,复合类型(指针,引用) 2、用户定义类型(原创 2015-04-08 16:12:42 · 1211 阅读 · 0 评论 -
浅谈C++中虚基类的作用
我们知道,如果一个派生类有多个直接基类,而这些直接基类又有一个共同的基类,则在最终的派生类中会保留该间接共同基类数据成员的多份同名成员。在引用这些同名的成员时,必须在派生类对象名后增加直接基类名,以避免产生二义性,使其惟一地标识一个成员,在一个类中保留间接共同基类的多份同名成员,虽然有时是有必要的,可以在不同的数据成员中分别存放不同的数据,也可以通过构造函数分别对它们进行初始化。但在大多数情况原创 2015-04-08 16:18:35 · 1545 阅读 · 0 评论 -
浅谈C++类静态数据成员与类静态函数成员
静态类成员包括静态数据成员和静态函数成员两部分。 一、静态数据成员: 当将类的某个数据成员声明为static时,该静态数据成员只能被定义一次,而且要被同类的所有对象共享。各个对象都拥有类中每一个普通数据成员的副本,但静态数据成员只有一个实例存在,与定义了多少类对象无关。静态方法就是与该类相关的,是类的一种行为,而不是与该类的实例对象相关。原创 2015-04-13 16:39:37 · 836 阅读 · 0 评论 -
浅谈C++中模版的使用
泛型编程(Generic Programming)是一种编程范式,通过将类型参数化来实现在同一份代码上操作多种数据类型,泛型是一般化并可重复使用的意思。泛型编程最初诞生于C++中,目的是为了实现C++的STL(标准模板库)。模板(template)是泛型编程的基础,一个模板就是一个创建类或函数的蓝图或公式。例如,当使用一个vector这样的泛型类型或者find这样的泛型函数时,我们提供足够原创 2015-04-10 17:09:36 · 700 阅读 · 0 评论 -
浅谈程序的栈内存和堆内存
在介绍堆和栈时先介绍一下程序在内存中的分布。一个由c/C++编译的程序占用的内存分为以下5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。(1)栈:就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。(2)堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个d原创 2015-04-09 15:52:34 · 574 阅读 · 0 评论 -
浅谈C++中stack/queue 的使用方法
1、stackC++ stack(堆栈) 是一个容器类的改编,为程序员提供了堆栈的全部功能,——也就是说实现了一个先进后出(FILO)的数据结构。stack 模板类的定义在头文件中。stack 模板类需要两个模板参数,一个是元素类型,一个容器类型,但只有元素类型是必要的,在不指定容器类型时,默认的容器类型为deque。定义stack 对象的示例代码如下:stack s1;s原创 2015-03-17 14:56:55 · 1179 阅读 · 0 评论 -
浅谈C++中关键字explicit使用详细
在C++中,explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换。explicit使用注意事项: * explicit 关键字只能用于类内部的构造函数声明上。 * explicit 关键字作用于单个参数的构造函数。 * 在C++中,explicit关键字用来修转载 2015-03-27 10:21:04 · 965 阅读 · 0 评论 -
浅谈C++中内联关键字inline
一、在C&C++中,inline 关键字用来定义一个类的内联函数,引入它的主要原因是用它替代C中表达式形式的宏定义。 表达式形式的宏定义一例: #define ExpressionName(Var1,Var2) ((Var1)+(Var2))*((Var1)-(Var2))为什么要取代这种形式呢,且听我道来: 1. 首先谈一下在C中使用这种形式宏定义的原因,C语转载 2015-03-27 15:47:03 · 1163 阅读 · 0 评论 -
浅谈C++中的四种类型转换
转换的含义是通过改变一个变量的类型为别的类型从而改变该变量的表示方式。为了类型转换一个简单对象为另一个对象你会使用传统的类型转换操作符。型转换有c风格的,当然还有c++风格的。c风格的转换的格式很简单(TYPE)EXPRESSION;例如将为了转换一个类型为doubole的浮点数的指针到整型:代码:int i;double d;i = (int) d;或者:i = in原创 2015-03-27 10:43:28 · 496 阅读 · 0 评论 -
浅谈sscanf与sprintf
最近在C++编程中会遇到要进行字符串和整型之间相互转换的情况,对于C++的字符流操作还不是很熟悉,而且感觉使用起来并没有原来C语言中的sscanf与sprintf顺手(个人对C++还不是特别熟练),所以还是习惯的使用了sscanf与sprintf来操作字符串。sscanf和sprintf是scanf和printf家族的一对成员,用于处理和分析字符串非常强大得两个函数。在C语言中使用这两个函数的原创 2015-03-06 11:10:19 · 646 阅读 · 0 评论 -
浅谈C++中qsort与sort的使用方法与区别
这两天在刷leetcode时看到了一些关于排序的题目,其中遇到各种大神对sort与qsort的使用,个人在使用时对比发现了一些sort与qsort的区别,并对它们的使用方法进行了一些总结介绍。在平时编程时,排序是一种经常要用到的操作。如果每次都自己临场写)排序算法,不仅容易出错,而且浪费宝贵的时间。在C++的STL里面有两个sort与qsort可以直接用于对各种类型的数据以及容器进行排序。原创 2015-03-05 17:01:34 · 21802 阅读 · 9 评论 -
浅谈C++中new以及delete使用
对于计算机程序设计而言,变量和对象在内存中的分配都是编译器在编译程序时安排好的,这带来了极大的不便,如数组必须大开小用,指针必须指向一个已经存在的变量或对象。对于不能确定需要占用多少内存的情况,动态内存分配解决了这个问题。对于个人感触最深的就是数组了,数组有三个重要的限制:(1)数组长度固定不变;(2)在编译时必须知道数组的长度;(3)数组只在定义它的块语句内存在。实际的程序往往不能忍受这原创 2015-03-04 20:42:19 · 770 阅读 · 0 评论 -
C++中vector实现及使用详解
vector是)C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的1、vectot与array vector与array非常相似。两者的唯一区别在于空间的运用的灵活性。array是静态空间,一旦配置了就不能改变;vector是动态空间,随着元素的加入,它的内部机制会自行扩充空间以原创 2015-01-23 16:41:08 · 1445 阅读 · 0 评论 -
浅谈C++中的虚函数
面向对象编程基于三个基本概念:数据抽象、继承和动态绑定,在C++中,用类进行数据抽象,用类派生从一个类继承另一个类。派生类继承基类的成员。动态绑定能够时编译器在运行时决定是使用基类中的函数还是继承类之中的函数。继承和动态绑定大大地简化了程序,而虚函数便是其中的一个关键因素。 什么是虚函数?虚函数是在类中被声明为virtual的成员函数,当编译器看到通过指针或引用调用此类函数时,对原创 2015-03-04 10:12:40 · 490 阅读 · 0 评论 -
全局变量、局部变量、静态全局变量、静态局部变量的区别
C++变量根据定义位置的不同,具有不同的作用域,作用域可分为6种:全局作用域,局部作用域,语句作用域,类作用域,命名作用域和文件作用域。从作用域看:全局变量具有全局作用域。全局变量只需在一个源文件中定义,就可以作用于所有的源文件。当然,其他不包括全局变量定义的源文件需要用extern关键字再次声明这个全局变量。静态局部变量具有局部作用域。它只被初始化一次,自从第一次初始化直到程序与你新转载 2015-04-08 10:43:29 · 406 阅读 · 0 评论