![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
qq_34232889
这个作者很懒,什么都没留下…
展开
-
linux下静态库和动态库学习
今天我们主要来说说Linux系统下基于动态库(.so)和静态(.a)的程序那些猫腻。在这之前,我们需要了解一下源代码到可执行程序之间到底发生了什么神奇而美妙的事情。 在Linux操作系统中,普遍使用ELF格式作为可执行程序或者程序生成过程中的中间格式。ELF(Executable and Linking Format,可执行连接格式)是UNIX系统实验室(USL)作为应用程序二进制接转载 2017-01-14 11:17:10 · 212 阅读 · 0 评论 -
C++容器总结
本文出自:http://m.blog.csdn.net/cyh183269855/article/details/53760816c++容器C++中的容器大致可以分为两个大类:顺序容器和关联容器。顺序容器中有包含有顺序容器适配器。顺序容器:将单一类型元素聚集起来成为容器,然后根据位置来存储和访问这些元素。主要有vector、list、deque(双端转载 2017-07-06 11:10:06 · 338 阅读 · 0 评论 -
C语言内存布局
本文出自:http://c.biancheng.net/cpp/html/2857.html我们知道,C程序开发并编译完成后,要载入内存(主存或内存条)才能运行(请查看:载入内存,让程序运行起来),变量名、函数名都会对应内存中的一块区域。内存中运行着很多程序,我们的程序只占用一部分空间,这部分空间又可以细分为以下的区域:内存分区说明转载 2017-07-08 17:17:46 · 409 阅读 · 0 评论 -
指针类型的定义
类型定义的语法可以归结为一句话:只要在变量定义前面加上typedef,就成了类型定义。这儿的原本应该是变量的东西,就成为了类型。int integer; //整型变量int *pointer; //整型指针变量int array [5]; //整型数组变量int *p_array [5]; //整型指针的数组的变量int (*array_pointer) [5]转载 2017-09-08 15:57:18 · 7002 阅读 · 0 评论 -
C++之虚函数
1,C++对象的内存中,首先存放的是虚函数表的指针(__vfptr),接下来才是C++的其他成员,如果对一个C++对象直接取地址,站在该对象的角度来看,此时就已经获取了该对象的首地址,但从该对象的成员的角度来看,此时获取的其实就是该对象第一个成员的地址,而一般c++对象的第一个成员是虚函数表指针__vfptr,所以对一个c++对象直接取地址,微观上来看,其实获取的是该对象实例的虚函数表指针__vf转载 2017-09-18 13:33:25 · 442 阅读 · 0 评论 -
extern "C"
“#ifdef __cplusplus extern "C" { #endif”的定义看一些程序的时候老是有“#ifdef __cplusplusextern "C" {#endif”的定义,搞搞清楚是怎么回事:Microsoft-Specific Predefined Macros__cplusplus Defined for C++ prog转载 2017-10-12 17:31:58 · 241 阅读 · 0 评论 -
C++学习资料
内容目录:C++入门语言技巧,性能优化底层硬货STLBoost设计模式算法篇算起来,用C++已经有七八年时间,也有点可以分享的东西;以下推荐的书籍大多有电子版。对于技术类书籍,电子版并不会带来一个好的阅读体验。如果喜欢,最好找纸版(图书馆是个好去处);电子版更适合作为一个参考书籍常备电脑。 我将分为基础篇、Windows篇、和Linux/Unix篇 三个部分来介转载 2017-11-12 14:35:57 · 3305 阅读 · 0 评论 -
位字段
转自:http://c.biancheng.net/cpp/html/102.html有些数据在存储时并不需要占用一个完整的字节,只需要占用一个或几个二进制位即可。例如开关只有通电和断电两种状态,用 0 和 1 表示足以,也就是用一个二进位。正是基于这种考虑,C语言又提供了一种叫做位域的数据结构。在结构体定义时,我们可以指定某个成员变量所占用的二进制位数(Bit),这就是位域。请看下面的例子:st...转载 2018-03-10 17:39:23 · 1582 阅读 · 0 评论 -
如何学习C/C++
转载自:http://blog.csdn.net/walkinginthewind/article/details/13000431找工作是一个长期准备的过程,突击是没什么效果的。准备时间越长,准备就越充分,就越容易拿到好的offer。我基本上从研究生一入学就一直在准备找工作的东西,看书、研究研究笔试面试题、在线编程训练、参加实习招聘等等。当然,其实主要还是研二开始准备的,也算不上多认真,反正一天...转载 2018-03-10 21:25:02 · 729 阅读 · 0 评论 -
C++的输入输出流的缓冲区问题
现在来讨论一下关于C++的输入输出流的缓冲区问题一般 C++ 我们使用输出流cout都会用到endl这个操纵符。是吧C++里有几个可以来控制缓冲区刷新的操纵符。endlflushendsunitbufnounitbuf 这几个操纵符是用来控制输出流的缓冲区,这里主要要讲一下这几个的作用。先来介绍一下这几个的作用:endl // endl是用来 完成换行并刷新缓冲区的flush // flush...转载 2018-03-30 16:40:44 · 6806 阅读 · 6 评论 -
list容器的使用方法
本文出自:https://msdn.microsoft.com/zh-cn/library/802d66bt.aspxlist 类Visual Studio 2015其他版本 若要了解有关 Visual Studio 2017 RC 的最新文档,请参阅 Visual Studio 2017 RC 文档。转载 2017-07-05 20:05:30 · 5259 阅读 · 0 评论 -
多态与虚函数的概念
一.多态性的概念:1.多态:在面向对象方法中一般是这样表述多态性的: 向不同的对象发送同一个消息,不同的对象在接收时会产生不同的行为(即方法)。也可以说,多态性是“一个接口,多种方法”。2.从系统实现的角度看,多态性分为两类: 静态多态性和动态多态性。以前学过的函数重载和运算符重载实现的多态性属于静态多态性,动态多态性是通过虚函数(virtual function)实现的。3.静态转载 2017-07-14 10:40:31 · 401 阅读 · 0 评论 -
vector的使用
本文出自:http://www.jb51.net/article/44231.htmvector 是向量类型,它可以容纳许多类型的数据,如若干个整数,所以称其为容器。vector 是C++ STL的一个重要成员,使用它时需要包含头文件:复制代码 代码如下:#include;一、vector 的初始化:可以有五种方式,举例说明如下:(1) vector a转载 2017-07-05 11:07:41 · 1179 阅读 · 0 评论 -
C语言用数组作函数参数
转载自 http://c.biancheng.net/cpp/html/78.html用普通变量做函数参数,形参和实参位于不同的内存区域,发生函数调用时,会把实参的值传递给形参,改变形参的值不会影响到实参,它们是相互独立的。这称为按值传递。在用数组名作函数参数时,不是进行值的传送,不会把实参数组的每一个元素的值都赋予形参数组的各个元素。因为实际上形参转载 2017-06-29 11:13:22 · 3440 阅读 · 0 评论 -
在类模板中使用友元函数的问题
声明:未经允许,不得转载结合所学知识,记录笔记;(1)将友元函数写在模板的类的内部,不会有什么问题#define _CRT_SECURE_NO_WARNINGS#include #include using namespace std;templateclass Complex{public: Complex(){} Complex(T a1,T b1)原创 2017-07-10 15:22:35 · 2614 阅读 · 1 评论 -
test
#define _CRT_SECURE_NO_WARNINGS#include #include #include //与void print_str(char* arr[],int n)等价void print_str1(char** arr,int n){int i=0;for(i=0;iprintf("%s ",arr[i]);}}原创 2017-06-30 10:10:05 · 236 阅读 · 0 评论 -
通过字符串逆序学习二级指针的三种内存模型 #################################################### #########################
通过字符串逆序学习二级指针的三种内存模型###############################################################################################################################################################################原创 2017-06-30 10:32:59 · 297 阅读 · 0 评论 -
构造函数的调用
构造函数的调用#define _CRT_SECURE_NO_WARNINGS#include #include using namespace std;class A{public: A(){a=1;} A(int a){ this->a=a; } void showA(){ cout<<a<<endl; }protected:private: int a;原创 2017-07-10 20:15:10 · 442 阅读 · 0 评论 -
关于C语言字符数组、字符串和指针的相关问题
原文出自:http://www.cnblogs.com/KingOfFreedom/archive/2012/12/07/2807223.htmlC语言中,为什么字符串可以赋值给字符指针变量本文是通过几篇转帖的文章整理而成的,内容稍有修改:一、C语言中,为什么字符串可以赋值给字符指针变量char *p,a='5';p=&a;转载 2017-07-01 09:51:42 · 349 阅读 · 0 评论 -
关于new和delete
本文出自:http://blog.csdn.net/xxpresent/article/details/53024555说起new和delete,了解过c++的人应该都知道吧,它是用来分配内存和释放内存的两个操作符。与C语言中的malloc和free类似。c语言中使用malloc/calloc/realloc/free进行动态内存分配,malloc/calloc/realloc用来转载 2017-07-01 10:47:10 · 422 阅读 · 0 评论 -
C++内存布局
本文出自:http://blog.csdn.net/ljianhui/article/details/45903939在C++中,有两种类的成员变量:static和非static,有三种成员函数:static、非static和virtual。那么,它们如何影响C++的对象在内存中的分布呢? 当存在继承的情况下,其内存分布又是如何呢?下面就一个非常简单的类,通过逐渐向其中转载 2017-07-03 09:52:24 · 166 阅读 · 0 评论 -
C++虚函数的内存模型
前言大家都应该知道C++的精髓是虚函数吧? 虚函数带来的好处就是: 可以定义一个基类的指针, 其指向一个继承类, 当通过基类的指针去调用函数时, 可以在运行时决定该调用基类的函数还是继承类的函数. 虚函数是实现多态(动态绑定)/接口函数的基础. 可以说: 没有虚函数, C++将变得一无是处!既然是C++的精髓, 那么我们有必要了解一下她的实现方式吗? 有必要! 既然C++是从C语言转载 2017-07-03 11:00:31 · 807 阅读 · 1 评论 -
C语言的各种版本
之前就知道了有个C90和C99。后来又在:【已解决】弄明白哪个版本的gcc才支持c11期间知道有C11。现在去整理一下,关于C语言的版本方面的更详细的内容。参考内容:Language Standards Supported by GCCAn Introduction to GCC – for the GNU compilers gcc转载 2017-06-23 19:20:33 · 2732 阅读 · 0 评论 -
Qt制作动态库
记录一下QT5 动态链接库的创建和使用在文章的最后有完成的代码供下载1.创建动态链接库先新建一个库项目选择chose进入下一下页面,类型选择共享库,输入一个名称:我输入的是sld再点击下一步到如果这里我们需要QtGui所以也勾选上了再点击下一步直到完成我们在.pro文件里加上DESTDIR =..\MyDebug它的意思是我们把生成的内容放到这个...转载 2018-10-29 21:52:27 · 1340 阅读 · 0 评论