C/C++
文章平均质量分 83
yangchuankai
https://github.com/tigerguixh/QuickNews
展开
-
C语言中volatile关键字的作用
一.前言1.编译器优化介绍:由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。以上是硬件级别的优化。再看软件一级的优化:一种是在编写代码时由程序员优化,另一种是由编译器进行优化。编译器优化常用的转载 2014-09-04 23:22:23 · 573 阅读 · 0 评论 -
C++STL常见面试题
1.C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作。vector封装数组,list封装了链表,map和set封装了二叉树等2.标准关联容器set, multiset, map, multimap内部采用的就是一种非常高效的平衡检索二叉树:红黑树,也成转载 2014-09-04 23:41:22 · 4094 阅读 · 0 评论 -
C++ 之 多线程 百度、华为、360 面试面试题汇总(一)
首先在此感谢 MoreWindows 秒杀多线程面试题系列让我成长和学习!在此再一次真心的感谢!本文来自http://blog.csdn.net/morewindows/article/details/7392749无答案解析 以下提供答案参考:第一题:线程的基本概念、线程的基本状态及状态之间的关系?线程,有时称为轻量级进程,是CPU使用的基本单元;它由线程ID、程转载 2014-09-04 23:23:13 · 1740 阅读 · 0 评论 -
C++中mutable学习
mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。 在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。 我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成const的。但是,有些时候,我们需要在const的函数里面原创 2014-09-08 10:47:40 · 526 阅读 · 0 评论 -
常识题两个
原文地址:常识题两个作者:ruanbo1003 1. 写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个 #defineMIN(a,b) ( (a) 2. 用变量a给出下面的定义一个整形数 int a一个指向整形数的指针 int *a一个指向指针的指针,它指向的指针是指向一个整形数 int **a一个有10个整型数的数组 int a[10]一转载 2014-09-11 15:17:46 · 598 阅读 · 0 评论 -
error LNK2019: 无法解析的…
原文地址:LNK2019: 无法解析的外部符号(编程解决方法)">error LNK2019: 无法解析的外部符号(编程解决方法)作者:大队长桃子正在编译...1>Ipv4IPv6traceroutesrc.cpp1>d:研究生c++studytesttestipv4ipv6traceroutesrc.cpp(461): warning C4267: “参数”: 从“size_t”转换到“转载 2014-09-11 15:17:48 · 674 阅读 · 0 评论 -
2014年C++大会的嘉宾演讲稿开放下载
2014年C++大会的嘉宾演讲稿,主办方已在开放下载:An Overview of C++11 and C++14 - Leor Zolman Async sequences and algorithms to compose them - Kirk ShoopAsynchronous Computation in C++ - Hartmut KaiserBack to原创 2014-09-16 12:41:19 · 1063 阅读 · 0 评论 -
Visual Studio 2012常用快捷键总结
写在前面:都知道,合理使用快捷键可以提高开发效率。但是Visual Studio提供的快捷键多如牛毛,那我们有没有必要掌握所有快捷键的使用方法呢,答案因人而异。就我个人而言,在开发过程中,我就只用到了其中的很少一部分,但是工作同样进行的很好。所以这篇文章并没有罗列所有的快捷键,只是对自己常用的一些快捷键做了一个总结,希望需要时可以进行查阅。如果你想了解更多快捷键的使用,建议你可以参考博文h转载 2014-09-04 23:36:16 · 625 阅读 · 0 评论 -
C++主题——转换函数
C++主题——转换函数 转换函数的基本规则: 转换函数只能是成员函数,无返回值,空参数。 不能定义到void的转换,也不允许转换成数组或者函数类型。 转换常定义为const形式,原因是它并不改变数据成员的值。转换函数所引出的问题: 转换操作符过于强大,它可以定义到一种内置类型的转换,然而这种内置类型本身是可能继转载 2014-09-04 23:40:00 · 662 阅读 · 0 评论 -
C++11中值得关注的几大变化
声明:本文源自 Danny Kalev 在 2011 年 6 月 21 日发表的《The Biggest Changes in C++11(and Why You Should Care)》一文,几乎所有内容都搬了过来,但不是全文照译,有困惑之处,请参详原文(http://www.softwarequalityconnection.com/2011/06/the-biggest-changes-i转载 2014-09-04 23:35:32 · 549 阅读 · 0 评论 -
全面整理的C++面试题
1.是不是一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态?virtual修饰符会被隐形继承的。private 也被集成,只事派生类没有访问权限而已。virtual可加可不加。子类的空间里有父类的所有变量(static除外)。同一个函数只存在一个实体(inline除外)。子类覆盖它的函数不加virtual ,也能实现多态。在子类的空间里,有父类的私有转载 2014-09-04 23:09:11 · 517 阅读 · 0 评论 -
Linux下ps命令详解
linux上进程有5种状态: 1. 运行(正在运行或在运行队列中等待) 2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号) 3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生) 4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放) 5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIG转载 2014-09-04 23:12:46 · 600 阅读 · 0 评论 -
为什么C++编译器不能支持对模板的分离式编译
为什么C++编译器不能支持对模板的分离式编译 刘未鹏(pongba)C++的罗浮宫(http://blog.csdn.net/pongba) 首先,一个编译单元(translation unit)是指一个.cpp文件以及它所#include的所有.h文件,.h文件里的代码将会被扩展到包含它的.cpp文件里,然后编译器编译该.cpp文件为一个.obj文件(假定我们的平台是win3转载 2014-09-04 23:46:53 · 663 阅读 · 0 评论 -
C++ 智能指针详解
C++ 智能指针详解 一、简介由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delete 的情况并不罕见。用智能指针便可以有效缓解这类问题,本文主要讲解参见的智能指针的用法。包括:std::auto_ptr、boost::scoped_p转载 2014-09-04 23:36:59 · 485 阅读 · 0 评论 -
C++错误unresolved external symbol _WinMain@16
今天在写c++作业时出现一个错误提示:Linking... LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16 Debug/test.exe : fatal error LNK1120: 1 unresolved externals Error executing link转载 2014-03-29 10:15:25 · 1080 阅读 · 0 评论 -
C/C++内存释放应注意的问题
编程时最应该注意的是堆上的内存的申请和释放,防止内存泄露 eg: void f() { int *p=new int[10]; } 理解为:在栈的内存中存放一个指向堆内存的指针P;(就是在栈的内存中存放了堆内存中10个int的内存块的首地址)3、内存泄露问题应该注转载 2014-03-29 08:23:07 · 2015 阅读 · 0 评论 -
关于强制类型转换:强制类型转换
记住核心原则--C语言里面的强制类型不改变内存数据。比如我们可以(int)'A',这样转换后的结果为A的ASCII码数值,因为那块内存本来就存的那个数,只是换个形式使用而已。知道上面的原则,我们可以对任何数据类型进行转换,但是转换的结果可能不是你想像的结果,举例(int)'9'的结果为多少?不是9而是0x39。来个高深点的printf("%d",'12');的输出是什么?正确答案是转载 2014-04-02 17:00:20 · 1385 阅读 · 0 评论 -
【珍藏】C/C++热门精品资料地址集(110个)
网上C/C++资料很多,但是良莠不齐,在这里我们收集了一批热门的,好评率都很不错的资料,按照下载量和好评率排序,制作了一个地址集分享给广大C/C++学习者,方便大家收藏以备后用,需要时选择性下载。希望大家喜欢!' X, A, k3 T4 a, z' p/ Q) ` T K( Vbbs.51cto.com' I9 @* j8 I0 D$ f0 Z目录完整版 0积分下载:http:转载 2014-09-04 23:13:58 · 1068 阅读 · 0 评论 -
memset函数详细说明
1。void *memset(void *s,int c,size_t n)总的作用:将已开辟内存空间 s 的首 n 个字节的值设为值 c。2。例子#includevoid main(){char *s="Golden Global View";clrscr();memset(s,'G',6);printf("%s",s);getchar()转载 2014-09-04 23:30:38 · 455 阅读 · 0 评论 -
C++虚函数表解析
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不做过转载 2014-09-04 23:33:02 · 442 阅读 · 0 评论 -
atan函数与atan2函数的一点区别
atan 和 atan2 都是求反正切函数,如:有两个点 point(x1,y1), 和 point(x2,y2);那么这两个点形成的斜率的角度计算方法分别是:float angle = atan( (y2-y1)/(x2-x1) );或float angle = atan2( y2-y1, x2-x1 ); atan 和 atan2 区别:转载 2014-09-04 23:36:13 · 1966 阅读 · 0 评论 -
工作积累之模板类实例化
模板函数在声明的时候, 其实并不存在,函数地址也就无从谈起了,而导出到动态链接库的函数都需要有地址(动态链接库不能将模板类导出,因为没法生成实例)如果把模板类的声明和定义都放在头文件中。需要用到模板类的时候,只需要包含该头文件,然后进行实例化。如果模板类的声明和定义分别放在头文件和源文件中。当实例化的时候,只包含头文件会发证链接错误。原因是模板类的实例化要分成两个步转载 2014-09-04 23:02:55 · 527 阅读 · 0 评论 -
指针在任何情况下都可以进行>,=,<=, ==运算?
答案:1、如果不谈比较的意义,答案是肯定的。就算在没有赋初值得时候也是可以比较的2、比较的意义: 不同类型的指针不强制类型转换 (没有意义) 没有意义的指针(比方说同类型的没有初始化的指针)比较 (没有意义) 一般不在相同的存储区域(堆、栈、静态存储空间)内 (没有意义)转载 2014-09-04 23:20:20 · 1747 阅读 · 0 评论 -
C++中智能指针的设计和使用
转载请标明出处,原文地址:http://blog.csdn.net/hackbuteer1/article/details/7561235 智能指针(smart pointer)是存储指向动态分配(堆)对象指针的类,用于生存期控制,能够确保自动正确的销毁动态分配的对象,防止内存泄露。它的一种通用实现技术是使用引用计数(reference count)。智能指针类将一个计数器与类指向的对转载 2014-09-04 23:38:12 · 519 阅读 · 0 评论 -
C++字符串转化为数字的库函数
1、atoi功 能:把一字符串转换为整数用 法:int atoi(const char *nptr);详细解释:atoi是英文array to integer 的缩写。atoi()会扫描参数nptr字符串,如果第一个字符不是数字也不是正负号返回零,否则开始做类型转换,之后检测到非数字或结束符 /0 时停止转换,返回整型数。 参 数: *nptr: 待转化的字符串。返回转载 2014-09-04 23:25:05 · 622 阅读 · 0 评论 -
C++ 继承中的覆盖,隐藏,虚拟继承
首先,声明一点,覆盖和隐藏是基于继承来讨论的;至于重载貌似和继承没有太大联系,所谓重载就是同一函数名,不同的参数列表(类型或个数),这里不做讨论。1 覆盖特点:(1)父类的成员函数是虚拟函数,即在成员函数前加上virtual关键字 (2)子类的同名成员函数和父类的完全相同,即参数和返回值类型完全一样满足上述2条特征即为覆盖目的: 其转载 2014-09-04 23:31:24 · 532 阅读 · 0 评论 -
C++知识点总结
C++知识点汇总一、const,&: ●When:实参与const引用参数不匹配时,编译器将创建临时变量? 1、实参的类型正确,但不是左值; 2、实参类型不正确,但可转换为正确类型。 ●Why:引用形参尽可能声明为const? 1、可以避免无意中修改数据; 2、使函数能够处理cons原创 2015-07-10 19:01:44 · 2456 阅读 · 0 评论