随笔分类 -  c++

va_list arg_list va_start(arg_list, format) va_end( arg_list ) 原理的理解
摘要:1.在C中,当我们无法列出传递函数的所有实参的类型和数目时,可以用省略号指定参数表 void foo(...);void foo(parm_list,...); 这种方式和我们以前认识的不大一样,但我们要记住这是C中一种传参的形式,在后面我们就会用到它。 2.函数参数的传递原理 函数参数是以数据结构 阅读全文

posted @ 2018-12-08 00:11 zhangkele 阅读(1335) 评论(0) 推荐(0)

g++ -I(大写i) 与-L(大写l)-l(小写l) 的作用与学习 使用静态库 编译的时候 需要加上 static
摘要:linux 下 g++编译程序时,-I(大写i) 与-L(大写l)-l(小写l) 的作用 作为一个linux入门级使用者,gcc/g++ 的简单操作已经用过多次, 但是有时稍微复杂一点的程序就会使用到库。在遇到问题的时候我查了挺多前辈总结的资料,也留个脚本希望对朋友们有个帮助。如果也能处理你的问题, 阅读全文

posted @ 2018-11-30 11:32 zhangkele 阅读(6539) 评论(0) 推荐(1)

单例模式的学习 懒汉与饿汉 以及懒汉式多线程安全问题的考虑!!!!!!!!!!!!!!!!!
摘要:待完成!!!!!!!! 阅读全文

posted @ 2018-10-23 01:34 zhangkele 阅读(138) 评论(0) 推荐(0)

从c到cpp对static 关键字的总结 需要整理下!!!!!!!!!!!!!!!!!!!!!!
摘要:一个完整的程序,在内存中的分布情况如下: 具体分布图 自己看书去!!!!!1.栈区: 由编译器自动分配释放,像局部变量,函数参数,都是在栈区。会随着作用于退出而释放空间。3.堆区:程序员分配并释放的区域,像malloc(c),new(c++) 3.全局数据区(静态区):全局变量和静态便令的存储是放在 阅读全文

posted @ 2018-10-23 00:29 zhangkele 阅读(160) 评论(0) 推荐(0)

迭代器与指针的区别于联系
摘要:迭代器与指针的差别: 迭代器: (1)迭代器不是指针,是类模板,表现的像指针。他只是模拟了指针的一些功能,通过重载了指针的一些操作符,->,*,++ --等封装了指针,是一个“可遍历STL( Standard Template Library)容器内全部或部分元素”的对象, 本质是封装了原生指针,是 阅读全文

posted @ 2018-07-04 21:38 zhangkele 阅读(679) 评论(0) 推荐(0)

c++中代理类的学习
摘要:https://blog.csdn.net/lcg910978041/article/details/51468680 C++代理类是为了解决这样的问题: 容器通常只能包含一种类型的对象,所以很难在容器中存储对象本身。 怎样设计一个c++容器,使它有能力包含类型不同而彼此相关的对象? 代理运行起来和 阅读全文

posted @ 2018-07-01 13:05 zhangkele 阅读(1558) 评论(0) 推荐(2)

c++ primer 中讲的顶层const 和 底层 const 理解
摘要:c++ primer 中讲的 顶层const 和 底层 const 以前没搞懂的顶层const和底层const,这次看了后感觉明白了。 首先,const是一个限定符,被它修饰的变量的值不能改变。 对于一般的变量来说,其实没有顶层const和底层const的区别, 而只有向指针这类复合类型的基本变量, 阅读全文

posted @ 2018-06-03 23:44 zhangkele 阅读(707) 评论(0) 推荐(0)

c++11 move构造函数和move operator 函数 学习
摘要:先看个代码吧!!!!!!!!!! 上面的代码如果注释掉9行10行结果如下 上面的代码正好验证了一句话 定义了move构造函数后,拷贝构造函数默认为删除的。 不删除也不会有什么影响!!!(目前是这样) effective modern cpp 条款17 理解特殊成员函数的生成规则 特殊成员函数是那些编 阅读全文

posted @ 2018-05-25 02:18 zhangkele 阅读(2000) 评论(0) 推荐(0)

学习 emplace_back() 和 push_back 的区别 emplace_back效率高
摘要:在引入右值引用,转移构造函数,转移复制运算符之前,通常使用push_back()向容器中加入一个右值元素(临时对象)的时候,首先会调用构造函数构造这个临时对象,然后需要调用拷贝构造函数将这个临时对象放入容器中。原来的临时变量释放。这样造成的问题是临时变量申请的资源就浪费。 c++11引入了右值引用, 阅读全文

posted @ 2018-05-19 16:54 zhangkele 阅读(520) 评论(0) 推荐(0)

c++中 重载 覆盖 隐藏的区别 附加 mutable笔记
摘要:成员函数被重载的特征有: 1) 相同的范围(在同一个类中); //2) 函数名字相同; 3) 参数不同; 4) virtual关键字可有可无。 覆盖的特征有: 1) 不同的范围(分别位于派生类与基类); //2) 函数名字相同; 3) 参数相同; 4) 基类函数必须有virtual关键字。 隐藏是指 阅读全文

posted @ 2018-05-05 21:27 zhangkele 阅读(176) 评论(0) 推荐(0)

c++的直接初始化与复制初始化 未完成!!!!!!!!!!!!
摘要:直接初始化:是直接调用类的构造函数进行初始化。如下: string a;//调用默认构造函数 string a("hello");//调用参数为 const char* 类型的构造函数 string b(a);//调用拷贝构造函数 类似 string b = a; 复制初始化:指的是用“=” 号来初 阅读全文

posted @ 2018-04-30 22:00 zhangkele 阅读(378) 评论(0) 推荐(0)

c++ 三五法则 自己理解
摘要:简介 三五法则规定了什么时候需要 1 拷贝构造函数 2 拷贝赋值函数 3 析构函数 1. 需要析构函数的类也需要拷贝构造函数和拷贝赋值函数。 通常,若一个类需要析构函数,则代表其合成的析构函数不足以释放类所拥有的资源,其中最典型的就是指针成员(析构时需要手动去释放指针指向的内存)。 所以,若存在自定 阅读全文

posted @ 2018-04-03 14:01 zhangkele 阅读(2303) 评论(0) 推荐(0)

GDB 简单学习
摘要:一般来说,GDB主要帮忙你完成下面四个方面的功能: 1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。 2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式) 3、当程序被停住时,可以检查此时你的程序中所发生的事。 4、动态的改变你程序的执行环境。 从上面看来,GDB 阅读全文

posted @ 2017-12-17 16:36 zhangkele 阅读(253) 评论(0) 推荐(0)

动态库与静态库的学习 博主写的很好 静态库 编译的时候 需要加上 static 动态库编译ok运行不成功就按照文章中的方法修改
摘要:来源连接 http://www.cnblogs.com/skynet/p/3372855.html C++静态库与动态库 这次分享的宗旨是——让大家学会创建与使用静态库、动态库,知道静态库与动态库的区别,知道使用的时候如何选择。这里不深入介绍静态库、动态库的底层格式,内存布局等,有兴趣的同学,推荐一 阅读全文

posted @ 2017-12-09 20:14 zhangkele 阅读(1523) 评论(0) 推荐(1)

effective c++ 条款42 typename的双重意义
摘要:1. class和typename含义相同的例子 问题:在下面的模板声明中class和typename的区别是什么? 答案:没有任何区别。当声明一个模板类型参数时,class和typename意味着相同的事情。一些程序员喜欢使用class,因为容易敲打。其他的(包括我)更加喜欢使用typename, 阅读全文

posted @ 2017-11-28 21:35 zhangkele

目前 c++ primer学习总结笔记
摘要:C++的开始 1 main的返回值:0为成功状态,非0为系统定义的错误类型 2 输入输出:计算结果为左侧运算对象,IO操作读写缓冲与程序中的动作无关 3 输入流istream对象:cin(标准输入);流状态有效则cin为真,遇到EOF或无效输入cin为假 4 键盘输入EOF:Windows下ctrl 阅读全文

posted @ 2017-11-27 20:48 zhangkele 阅读(288) 评论(0) 推荐(0)

学习 primer 第8章 IO库 小结
摘要:iostream处理控制台IO fstream处理命名文件IO stringstream完成内存string的IO 非常重要!!!!!!!!!! 1 cin是一个istream对象 是从标准输入读取数据 2 cout是一个ostream对象 是从标准输出写入数据 3 cerr一个ostream对象 阅读全文

posted @ 2017-11-14 13:49 zhangkele 阅读(185) 评论(0) 推荐(0)

c++11 thread的学习
摘要:http://www.cnblogs.com/wxquare/p/6736202.html 还没开始 留个链接 使用c++11 thread支持实现 一个生产者消费者模型 下面是一个生产者消费者问题,来介绍condition_variable的用法。当线程间的共享数据发生变化的时候,可以通过cond 阅读全文

posted @ 2017-11-05 00:33 zhangkele 阅读(297) 评论(0) 推荐(0)

C++ 11 Lambda表达式!!!!!!!!!!!
摘要:C++11的一大亮点就是引入了Lambda表达式。利用Lambda表达式,可以方便的定义和创建匿名函数。对于C++这门语言来说来说,“Lambda表达式”或“匿名函数”这些概念听起来好像很深奥,但很多高级语言在很早以前就已经提供了Lambda表达式的功能。 声明Lambda表达式 Lambda表达式 阅读全文

posted @ 2017-11-05 00:15 zhangkele 阅读(262) 评论(0) 推荐(0)

c++11 右值的学习
摘要:从4行代码看右值引用 概述 简单的左值和右值的判断就是 看是否可以取得地址 可取得地址 是左值 不能则 是右值! c++98/03中的左值引用是这样的: int&是对左值进行绑定(但是int&却不能绑定右值), 对右值进行绑定的引用就是右值引用,他的语法是这样的A&&,通过双引用号来表示绑定类型为A 阅读全文

posted @ 2017-11-04 00:31 zhangkele 阅读(334) 评论(0) 推荐(1)

导航