有关C++问题
heart威名海
这个作者很懒,什么都没留下…
展开
-
C++及C中的 string char指针及char数组
C++中string是标准库中一种容器,相当于保存元素类型为char的vector容器(自己理解),这个类提供了相当丰富的函数来完成对字符串操作,以及与C风格字符串之间转换,下面是对string一些总结 一,C语言的字符串在C语言里,对字符串的处理一项都是一件比较痛苦的事情,因为通常在实现字符串的操作的时候都会用到最不容易驾驭的类型——指针。比如下面这个例子:翻译 2017-04-14 16:48:37 · 996 阅读 · 0 评论 -
C++虚函数指针虚函数表
C++的多态可以分为静态多态和动态多态。函数重载和运算符重载实现的多态属于静态多态,而通过虚函数可以实现动态多态。实现函数的动态联编其本质核心则是虚表指针与虚函数表。1. 虚函数与纯虚函数区别1)虚函数在子类里面也可以不重载的;但纯虚必须在子类去实现2)带纯虚函数的类叫虚基类也叫抽象类,这种基类不能直接生成对象,只能被继承,重写虚函数后才能使用,运行时动态动态绑定!2.子类继承父类...翻译 2018-09-24 23:42:14 · 796 阅读 · 1 评论 -
#define和const
转载:https://www.cnblogs.com/scut-linmaojiang/p/4722338.html类型和安全检查不同宏定义是字符替换,没有数据类型的区别,同时这种替换没有类型安全检查,可能产生边际效应等错误;const常量是常量的声明,有类型区别,需要在编译阶段进行类型检查编译器处理不同宏定义是一个“编译时”概念,在预处理阶段展开,不能对宏定义进行调试,生命周期...翻译 2018-09-24 09:32:55 · 301 阅读 · 0 评论 -
static与extern
一.C语言中的static关键字 在C语言中,static可以用来修饰局部变量,全局变量以及函数。在不同的情况下static的作用不尽相同。 (1)修饰局部变量 一般情况下,对于局部变量是存放在栈区的,并且局部变量的生命周期在该语句块执行结束时便结束了。但是如果用static进行修饰的话,该变量便存放在静态数据区,其生命周期一直持续到整个程序执行结束。但是在这里要注意...翻译 2018-09-24 09:30:17 · 161 阅读 · 0 评论 -
C++11常用新特性快速一览
转发:https://blog.csdn.net/jiange_zh/article/details/79356417最近工作中,遇到一些问题,使用C++11实现起来会更加方便,而线上的生产环境还不支持C++11,于是决定新年开工后,在组内把C++11推广开来,整理以下文档,方便自己查阅,也方便同事快速上手。(对于异步编程十分实用的Future/Promise以及智能指针等,将不做整理介绍,组...转载 2018-09-16 14:55:47 · 173 阅读 · 0 评论 -
为什么构造函数不可以声明为虚函数,而析构函数最好声明为虚函数
为什么构造函数不可以被声明为虚函数:1、因为创建一个对象时要确定对象的类型,而虚函数是在运行时确定其类型的,而在构造一个对象时,由于对象还未创建成功,编译器无法知道对象的实际类型。2、虚函数对应一个虚表,可是这个虚表其实是存储在对象的内存空间的。如果构造函数是虚的,就需要通过虚表来调用,可是对象还没有实例化,也就是内存空间还没有,怎么找虚表呢?所以构造函数不能是虚函数。为什么析构函数最...翻译 2018-09-03 09:31:24 · 525 阅读 · 0 评论 -
C/C++——程序实现过程之编译、链接和执行
从写一个简单的“hello world!”到完成一个大型程序,当程序从编辑完成到执行成功都会经过5个步骤,分别是预处理(Prepressing)、编译(Compilation)、汇编(Assembly)、链接(Linking)和执行(Executing)。了解这五个过程中所做的工作,对我们理解头文件、库文件等在程序中的作用是有帮助的,而且如果能够清楚的了解编译链接过程,在编程时定位错误,纠正错误,...翻译 2018-09-03 08:36:39 · 1833 阅读 · 0 评论 -
STL
STLSTL(Standard Template Library,标准模板库),它是由惠普实验室开发的一系列标准化的组件,目前是C++的一部分。‚STL的代码从广义上讲分为三类:container(容器)、iterator(迭代器)和algorithm(算法),容器和算法通过迭代器可以进行无缝地连接。ƒstring,wstring也是STL的一部分使用STL的好处STL是C++的一部分,因此不用额...原创 2018-07-14 11:16:04 · 4160 阅读 · 2 评论 -
C/C++中修饰符const、extern、static的用法
本文介绍C/C++中局部变量、全局变量、作用域(包括函数作用域、文件作用域、块作用域、函数原型作用域)、生存期以及针对变量和数组定义、函数声明的const、static和extern关键字的用法和作用。1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。也就是说extern...翻译 2018-07-13 09:48:59 · 299 阅读 · 0 评论 -
关于头文件定义全局变量等问题
全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?可以,在不同的C文件中以static形式来声明同名全局变量。头文件中不可以直接定义变量和函数,但是可以定义static变量 ,类。extern 用法,全局变量与头文件(重复定义)用#include可以包含其他头文件中变量、函数的声明,为什么还要extern关键字,如果我想引用一个全局变量或函数a,我只要直接在源文件中包含#include...翻译 2018-07-13 09:32:20 · 957 阅读 · 0 评论 -
C++多线程编程(入门实例)
https://www.cnblogs.com/codingmengmeng/p/5913068.html多线程在编程中有相当重要的地位,我们在实际开发时或者找工作面试时总能遇到多线程的问题,对多线程的理解程度从一个侧面反映了程序员的编程水平。 其实C++语言本身并没有提供多线程机制(当然目前C++ 11新特性中,已经可以使用std::thread来创建线程了,因为还没有系统地了解过,所...转载 2018-07-18 14:56:29 · 170 阅读 · 0 评论 -
C++多线程编程
随着计算机CPU计算能力快速提高,计算机的处理性能和并行性能力也大大提升。那么,一味使用运行时标准库的C++语言也应该开始支持多线程技术。今天,我为大家带来了C++在windows平台下的常用多线程方法。首先我先说一下线程的状态。线程有挂起状态、执行状态、阻塞状态和等待状态,下面分别介绍:挂起状态是说线程创建后并没有直接执行或是调用函数挂起了线程。被挂起了的线程没有执行的能力,只有调用启动函数了之...原创 2018-07-11 19:39:23 · 184 阅读 · 0 评论 -
sizeof(类)
基本概念1.类的大小为类的非静态成员数据的类型大小之和,也就是说静态成员数据不作考虑。2.普通成员函数与sizeof无关。3.虚函数由于要维护在虚函数表,所以要占据一个指针大小,也就是4字节。4.类的总大小也遵守类似class字节对齐的,调整规则。一个类的实例化对象所占空间的大小? 注意不要说类的大小,是类的对象的大小.首先,类的大小是什么?确切的说,类只是一个类型定义,它是没有大小可言的。 用s...翻译 2018-04-14 10:18:33 · 1073 阅读 · 0 评论 -
C++ 字符串 char string
原创 2018-04-13 21:43:40 · 177 阅读 · 0 评论 -
C++ 字符串 谭浩强版
原创 2018-04-13 21:40:55 · 191 阅读 · 0 评论 -
C++编辑编译链接运行
从写一个简单的“hello world!”到完成一个大型程序,当程序从编辑完成到执行成功都会经过5个步骤,分别是预处理(Prepressing)、编译(Compilation)、汇编(Assembly)、链接(Linking)和执行(Executing)。了解这五个过程中所做的工作,对我们理解头文件、库文件等在程序中的作用是有帮助的,而且如果能够清楚的了解编译链接过程,在编程时定位错误,纠正错误,...翻译 2018-04-17 09:20:22 · 6046 阅读 · 0 评论 -
C++文件读写
FILE文件流用于对文件的快速操作,主要的操作函数有fopen、fseek、fread、fclose,在对文件结构比较清楚时使用这几个函数会比较快捷的得到文件中具体位置的数据,提取对我们有用的信息,满足编程中的需要。以下分别进行说明,还有他们使用时的注意事项fopen函数原型 FILE * fopen(const char *path,cost char *mode)作用:打开一翻译 2017-04-15 16:20:53 · 226 阅读 · 0 评论 -
new与malloc
new和malloc的区别:0. 属性 new/delete是C++关键字,需要编译器支持。malloc/free是库函数,需要头文件支持。1. 参数 使用new操作符申请内存分配时无须指定内存块的大小,编译器会根据类型信息自行计算。而malloc则需要显式地指出所需内存的尺寸。2. 返回类型 new操作符内存分配成功时,返回的是对象类型的指针,类型严格与对象匹配,无须进行类型转换,故...转载 2018-09-26 22:45:25 · 130 阅读 · 0 评论