随笔分类 -  C++

摘要:explicit作用: 在C++中,explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换。 explicit使用注意事项: * explicit 关键字只能用于类内部的构造函数声明上。 * explicit 关键字作用于单个参数的 阅读全文
posted @ 2017-02-22 08:56 yzl050819 阅读(169) 评论(0) 推荐(0)
摘要:PeekMessage与GetMessage的对比相同点:PeekMessage函数与GetMessage函数都用于查看应用程序消息队列,有消息时将队列中 的消息派发出去。 不同点:无论应用程序消息队列是否有消息,PeekMessage函数都立即返回,程序得以继续执行 后面的语句(无消息则执行其它指 阅读全文
posted @ 2016-12-16 13:25 yzl050819 阅读(274) 评论(0) 推荐(0)
摘要:进入工程属性后,一次进入下面选项做相应修改 连接器 > 系统 >子系统: 控制台 (/SUBSYSTEM:CONSOLE)改为:窗口 (/SUBSYSTEM:WINDOWS) 阅读全文
posted @ 2016-12-07 15:29 yzl050819 阅读(1838) 评论(0) 推荐(0)
摘要:在学习C++的过程中时常碰到WINAPI或者CALLBACK这样的调用约定,每每觉得十分迷惑。究竟这些东西有什么用?不用他们又会不会有问题?经过在网上的一番搜寻以及自己动手后,整理成以下的学习笔记。1.WINAPI与CALLBACK 其实这两者在Windows下是相同的,在windef.h中定义如下 阅读全文
posted @ 2016-11-16 11:29 yzl050819 阅读(4333) 评论(0) 推荐(0)
摘要:在c++的世界中有这样两个概念,向上类型转换,向下类型转换,分别描述的是子类向基类,和基类向子类的强制类型转换。 向上强制类型转换 切割:覆盖方法和子类数据丢失的现象生成切割(slice) [cpp] view plain copy class Base { public: int b; virtu 阅读全文
posted @ 2016-11-04 11:25 yzl050819 阅读(488) 评论(0) 推荐(0)
摘要:C++中并没有值类型和引用类型之说,标准变量或者自定义对象的存取默认是没有区别的。但如果深入地来看,就要了解C++中,管理数据的两大内存区域:栈和堆。 栈(stack)是类似于一个先进后出的抽屉。它的体积是有限的,一般为2M左右。 而堆(heap)则相对来说体积可以很大,这一般跟计算机的虚拟内存设置 阅读全文
posted @ 2016-11-03 10:50 yzl050819 阅读(273) 评论(0) 推荐(0)
摘要:先来说说C和C++中结构体的不同 a) C语言中的结构体不能为空,否则会报错 1>d:\myproject\visual studio 2013\projects\myc++\main.c(71): error C2016: C 要求一个结构或联合至少有一个成员 b) C语言中的结构体只涉及到数据结 阅读全文
posted @ 2016-11-03 10:28 yzl050819 阅读(844) 评论(0) 推荐(0)
摘要:C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念)。下面对常遇到的宏的使用问题做了简单总结。关 于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引 阅读全文
posted @ 2016-11-02 13:55 yzl050819 阅读(1363) 评论(0) 推荐(0)
摘要:字符串前面加L表示该字符串是Unicode字符串。_T是一个宏,如果项目使用了Unicode字符集(定义了UNICODE宏),则自动在字符串前面加上L,否则字符串不变。因此,Visual C++里边定义字符串的时候,用_T来保证兼容性。VC支持ascii和unicode两种字符类型,用_T可以保证从 阅读全文
posted @ 2016-11-01 14:12 yzl050819 阅读(311) 评论(0) 推荐(0)
摘要:原文地址 http://www.cnblogs.com/ider/archive/2011/06/30/what_is_in_cpp_header_and_implementation_file.html#static_const_qualifier 在C++编程过程中,随着项目的越来越大,代码也会 阅读全文
posted @ 2016-10-26 11:14 yzl050819 阅读(491) 评论(0) 推荐(0)
摘要:看CImage函数实现的时候发现了这么个东东 它是函数提供者和使用者的一种君子协定,标明该函数不抛出任何异常。 之所以说是君子协定,是因为实际上内部实现是需要人肉确保。 如果一个标明throw()的函数内部发生了throw: 1,如果内部直接throw something,编译器会发现并指出; 2. 阅读全文
posted @ 2016-10-24 15:54 yzl050819 阅读(3700) 评论(0) 推荐(0)
摘要:在C中,输入输出用scanf和printf,在输入数据的同时还需说明数据的类型,如果输入数据较多,那就很麻烦,而C++中也有相似的东西cin和cout,它们来自C++的一个名叫" iostream"的类库。 iostream是由istream(输入流)和ostream(输出流)派生.所以在iostr 阅读全文
posted @ 2016-10-18 14:16 yzl050819 阅读(828) 评论(0) 推荐(1)
摘要:函数重载 函数重载的定义是:在相同的作用域中,如果函数具有相同名字而仅仅是形参表不同,此时成为函数重载。注意函数重载不能基于不同的返回值类型进行重载。 注意函数重载中的“形参表”不同,是指本质不同,不要被一些表象迷惑。main函数不能被重载。 下面三组定义本质是相同的,不是重载: 1)int sum 阅读全文
posted @ 2016-10-17 11:00 yzl050819 阅读(324) 评论(0) 推荐(0)
摘要:其实大家平常常会用的主要有三个:cout、cerr、clog,首先简单介绍下三者。 这三者在C++中都是标准IO库中提供的输出工具(至于有关的重载问题在此不讨论): cout:写到标准输出的ostream对象; cerr:输出到标准错误的ostream对象,常用于程序错误信息; clog:也是输出标 阅读全文
posted @ 2016-10-12 09:37 yzl050819 阅读(291) 评论(0) 推荐(0)
摘要:C++中定义了一组表示整数、浮点数、单个字符和布尔值的算术类型(arithmetic type)。 另外还定义了一种叫做void的特殊类型。void类型没有对应的值,仅用在有限的一些情况下,通常用作无返回值函数的返回类型。 算术类型的存储空间依机器而定。这里的存储空间是指用来表示该类型的二进制位(b 阅读全文
posted @ 2016-10-11 13:39 yzl050819 阅读(282) 评论(0) 推荐(0)
摘要:篇一、函数指针函数指针:是指向函数的指针变量,在C编译时,每一个函数都有一个入口地址,那么这个指向这个函数的函数指针便指向这个地址。函数指针的用途是很大的,主要有两个作用:用作调用函数和做函数的参数。函数指针的声明方法:数据类型标志符 (指针变量名) (形参列表);一般函数的声明为: int fun 阅读全文
posted @ 2016-10-10 13:57 yzl050819 阅读(403) 评论(0) 推荐(0)
摘要:auto_ptr是C++标准库中(<utility>)为了解决资源泄漏的问题提供的一个智能指针类模板(注意:这只是一种简单的智能指针) auto_ptr的实现原理其实就是RAII,在构造的时候获取资源,在析构的时候释放资源,并进行相关指针操作的重载,使用起来就像普通的指针。 std::auto_pt 阅读全文
posted @ 2016-09-27 13:14 yzl050819 阅读(137) 评论(0) 推荐(0)
摘要:这两个名字不同当然所代表的意思也就不同。我刚开始看到这就吓到了,主要是中文太博大精深了,整这样的简称太专业了,把人都绕晕了。从英文解释或中文全称看就比较容易理解。 指针数组:array of pointers,即用于存储指针的数组,也就是数组元素都是指针 数组指针:a pointer to an a 阅读全文
posted @ 2016-09-26 09:47 yzl050819 阅读(128) 评论(0) 推荐(0)
摘要:对于习惯使用C进行开发的朋友们,在看到c++中出现的&符号,可能会犯迷糊,因为在C语言中这个符号表示了取地址符,但是在C++中它却有着不同的用途,掌握C++的&符号,是提高代码执行效率和增强代码质量的一个很好的办法 引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、灵活地使用引用, 阅读全文
posted @ 2016-09-22 13:04 yzl050819 阅读(188) 评论(0) 推荐(0)
摘要:错误 1 error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 C:\Users\Administ 这两个fatal error是因为从低版本的WTL到高版本的WTL转变后产生的.错误描述如下:1>正在编译资源...1>正在编译资源清单...1>正在链接...1>CVTRES 阅读全文
posted @ 2016-09-22 11:03 yzl050819 阅读(4921) 评论(0) 推荐(0)