![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 89
mick_seu
这个作者很懒,什么都没留下…
展开
-
【C/C++语法】C++ 虚函数表解析
文章源自:http://blog.csdn.net/haoel/article/details/1948051 (陈皓专栏) 与 http://blog.csdn.net/hairetz/article/details/4137000(hairetz的专栏)C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指转载 2016-03-17 15:39:46 · 2704 阅读 · 0 评论 -
【C/C++】C++11新特性:初探右值引用与转移语义
参考自:右值引用与转移语义(李胜利)C++11之前,右值是不能被引用的,最大限度就是用常量引用绑定一个右值,如 :const int& a = 1;为了与左值引用区分,右值引用 && 表示。如下:#include void fun(int& i) { std::cout << "lvalue:" << i << std::endl;}void fun(int原创 2017-12-11 10:54:54 · 505 阅读 · 0 评论 -
【C/C++】C++11新特性:std::bind
相关知识参考:C++11 新特性:Lambda 表达式(豆子)std::function(碎语心弦)c++11 function、bind用法详解(猿码先生)std::bind可以根据当前已有的可调用对象,构造出一个新的可调用对象,有了bind,我们可以实现“动态生成新的函数”的功能。#include #include #include typedef st原创 2017-12-11 12:20:14 · 519 阅读 · 0 评论 -
【C/C++】返回值与左值
关于左值右值的定义,感觉好烦的样子,这里我们仅仅探讨返回值与左值的关系。参考自:函数返回值作为左值问题(sunshinewave)左值,简单来说就是可以放在等号左边被赋值。为了更好讨论这个问题,我们首先将函数返回值分为C++内置类型与自定义类型。对于内置类型,当返回值为值传递时,返回值实际是临时变量,不能作为左值,要想做左值,只能是返回引用。如下:// 值传原创 2017-12-03 15:12:07 · 2617 阅读 · 0 评论 -
【C/C++】Boost库初学
Boost库初次使用,C++11里很多新特性都来自Boost库。我的Boost库安装参考:http://blog.csdn.net/this_capslock/article/details/47170313#include #include #include #include #include using namespace std;volatile bool is原创 2017-12-13 10:36:51 · 1153 阅读 · 0 评论 -
【C/C++】类中的static成员、static const成员和const成员
const 数据成员const 数据成员只在某个对象生存期内是常量,而对于整个类而言却是可变的。因为类可以创建多个对象,不同的对象其 const 数据成员的值可以不同。所以不能在类声明中初始化 const 数据成员,因为类的对象未被创建时,编译器不知道const 数据成员的值是什么。 const 数据成员的初始化只能在类的构造函数的初始化表中进行。要想建立在整个类中都恒定的常量,应原创 2016-05-05 20:17:08 · 2135 阅读 · 0 评论 -
【C/C++】关键字static
参考自:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/19/2598815.html (华山大师兄)首先我们回顾一下各种变量在内存中的位置:1、静态的全局变量和函数当同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。//a.c#include cha原创 2016-03-30 21:53:32 · 469 阅读 · 0 评论 -
【C/C++】嵌套类
参考自:C++ 与“类”有关的注意事项总结(六):嵌套类与局部类(漫步云端)类还可以定义在另一个类的内部。我们称之为 “嵌套类”。嵌套类的目的:因为外围类需要使用嵌套类对象作为底层实现,并且该嵌套类只用于外围类的实现,同时对外隐藏该底层实现。几个注意点:1、从作用域的角度看,嵌套类被隐藏在外围类之中,该类名只能在外围类中使用。如果在外围类外使用该类名时,需要加外原创 2017-12-05 14:32:32 · 928 阅读 · 0 评论 -
【C/C++】智能指针auto_ptr,share_ptr,unique_ptr
《Effective C++》中提到,为了避免内存泄露,我们需要使用RAII(Resource Acquisition Is Initalization, "资源获得时机便是初始化时机"),即“以对象管理资源”,充分利用对象在离开其作用域时,析构函数将会被自动调用,在析构函数中释放其管理的资源。注:如果在资源释放的过程中导致抛出异常,事情就变得有点棘手,我们需要借用《Effective C++原创 2017-12-05 22:06:41 · 429 阅读 · 0 评论 -
【C/C++】重载(overload),重写(override,或覆盖),隐藏
转自:C++中的重载、重写(覆盖)、隐藏(Karen_Lh)一、重载 (1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual关键字可有可无。二、重写 覆盖是指派生类函数覆盖基类函数(1)不同的范围(分别位于派生类与基类);(2)函数名字相同;(3)参数相同;转载 2017-12-06 10:40:54 · 464 阅读 · 0 评论 -
【C/C++】C++基础知识查漏补缺
1、C++多态性的概念(转自C语言中文网)多态性是面向对象程序设计的一个重要特征。如果一种语言只支持类而不支持多态,是不能被称为面向对象语言的,只能说是基于对象的,利用多态性可以设计和实现一个易于扩展的系统。在C++程序设计中,多态性是指具有不同功能的函数可以用同一个函数名,这样就可以用一个函数名调用不同内容的函数。也就是说,每个对象可以用自己的方式去响应这个函数调用行为。原创 2016-05-19 16:37:15 · 581 阅读 · 0 评论 -
【C/C++】C++11初探多线程
首先推荐一个博客:C++11 并发指南系列(256code)本系列很多参考该专栏之前在Linux下,一直使用 Pthread 使用多线程变成。C++11 新标准中引入了五个头文件来支持多线程编程,他们分别是 , , , 和 。这样,你就可以在语言层面编写多线程程序了,直接的好处就是代码的可移植性得到了提高。:该头文主要声明了两个类,原创 2018-01-26 11:14:49 · 332 阅读 · 0 评论 -
【C/C++】模板类
记录一个以前没见过的模板使用方法,以后再扩展。#include template class Derived : public T { public: Derived() { std::cout << "Derived()" << std::endl; } ~Derived() { std::cout << "~Derived()" << std::endl; }};原创 2017-12-06 22:14:00 · 402 阅读 · 0 评论 -
【C/C++】C++11新特性:=default 和 =delete
参考自:微软文档显式默认设置的函数和已删除的函数C++11 标准新特性:Defaulted 和 Deleted 函数C++11 中值得关注的几大变化(详解)C++11以前,我们习惯将拷贝构造函数和拷贝赋值函数设置为 private 来禁止类的拷贝行为。class noncopyable { public: noncopyable() {};原创 2017-12-08 11:48:12 · 1854 阅读 · 0 评论 -
【C/C++】再探string
最近做了很多笔试,各种被虐,别的不说,还是被虐出了一条经验:STL 真的很重要!!!先从最简单的 String 练起~String 表示可变长的字符序列,常用的操作包括:in >> s 从in输入流读取字符串到s,字符串以空白(Tab、空格等)分隔out << s 把s输出到out输出流getline原创 2016-04-11 16:37:15 · 530 阅读 · 0 评论 -
【C/C++】引用和指针的区别
今天面试蚂蚁金服被问到这题,结果答得很肤浅,赶紧上网搜下。参考自:http://www.cnblogs.com/dolphin0520/archive/2011/04/03/2004869.html(海子)1、定义和性质区别:(1)指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。如:原创 2016-03-30 10:53:47 · 711 阅读 · 0 评论 -
【C/C++语法】Chapter 1
为了找工作,当前决定先把 JOS 学习放一放,主攻 C/C++ 语法与数据结构和算法问题。JOS 日后再战!【c/c++语法】系列主要用于收藏一些比较经典的语法注意点。1、函数参数的压栈顺序:http://www.360doc.com/content/13/1209/17/8285430_335754124.shtml2、异或的巧用:1)无进位的加法2)两个数的原创 2016-03-14 21:03:35 · 503 阅读 · 0 评论 -
【C/C++】异常机制
此文为网上众多博文整理结果,自己的思考较少,主要用于记录以提醒自己。http://openhome.cc/Gossip/CppGossip/ExceptionHandling.html 通俗易懂地介绍了异常的处理。C++的抛出异常实际是作为另一种返回值来使用的。 抛出异常的好处一是可以不干扰正常的返回值,另一个是调用者必须处理异常,而不像以前C语言返回一个整数型的错误码,调用者原创 2016-06-30 19:48:30 · 921 阅读 · 0 评论 -
配置GDB以支持查看stl容器数据
转自:配置GDB以支持查看stl容器数据GDB的自定义命令非常有用,通过自定义命令,直接操作容器中的数据,可以方便的查看STL容器中的数据。这个链接dbinit_stl_views是Dan C Marinescu写的查看STL容器的自定义命令(如果不适合你的STL版本的话,可以自行修改)。把它添加到你的.gdbinit中,就可以方便的查看STL容器了。它提供了查看v转载 2016-10-12 21:20:34 · 1141 阅读 · 0 评论 -
【C/C++】int,string,char之间转换
之前WAP的面试,遇到了 int,string,char 之间的转换,不熟,结果挂了。现总结如下:除此之外,int 转 string 还可以使用 to_string() 这个函数,注意该函数为C++11新增函数。原创 2016-11-06 20:02:14 · 701 阅读 · 0 评论 -
【C/C++】三种在C++里定义比较函数的方法
参考自:3 Ways to Define Comparison Functions in C++STL里有不少东西需要比较函数,例如 sort(),set,priority_queue。下面我们提供三种比较函数。1、定义 operator使用该方法的前提是有默认的比较函数会调用我们的 operator比如我们有如下类,那么我们可以这样定义 operator原创 2016-11-17 21:45:49 · 10740 阅读 · 1 评论 -
【数据结构与算法】初探哈希表
哈希表的存在是为了能够以O(1)平均时间复杂度插入和读取数据。参考《STL源码剖析》和《数据结构与算法分析——C语言描述》两本书,总算让我对哈希表有了一个基本的认识。谈到哈希表就会谈到冲突,两本书无疑都介绍了线性探测,二次探测等方法来解决冲突,不过在SGI STL库里,我们更常常用开放定址法(开链法)来解决冲突。SGI STL 里面的 hashtable 的具体实现是:1)原创 2016-11-18 20:03:40 · 445 阅读 · 0 评论 -
【C/C++】动态库与静态库
文章主要参考自:http://www.cnblogs.com/skynet/p/3372855.html(吴秦)和 http://blog.sina.com.cn/s/blog_54f82cc20101153x.html(老徐的博客)什么是库库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非原创 2016-03-29 15:08:28 · 1531 阅读 · 0 评论 -
【C/C++】constexpr和常量表达式
以下内容来自《C++ Primer(第五版)》常量表达式是指值不会改变并且在编译过程就能够得到计算结果的表达式。显然,字面值属于常量表达式,用常量表达式初始化的 const 对象也是常量表达式。如下:const int max_num = 20; // max_num是常量表达式const int limit = max_num + 1; //转载 2017-11-12 18:17:39 · 4148 阅读 · 1 评论 -
【C/C++】C++内存管理
内存管理一直是C++的一个难题,这里我借助几篇博文好好“预习”一下。C/C++内存管理详解(ShinChan's Blog)内存区划分、内存分配、常量存储区、堆、栈、自由存储区、全局区[C++][内存管理](I come, I see, I conquer)C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区(盗草人)C的内存分为:1)栈原创 2017-11-13 21:34:06 · 351 阅读 · 0 评论