随笔分类 -  C++

摘要:用VC++ 2008 编写C语言程序,编译出现错误:预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)解决方法:建工程时 建立空项目或者在项目设置里关闭预编译头的选项!当 Visual C++ 项目启用了预编译头 (Precompiled header) 功能时,... 阅读全文
posted @ 2015-01-24 18:11 夏大王 阅读(2865) 评论(0) 推荐(0)
摘要:引用的功能引用可以说是变量的一个别名和指针的一个结合体。它拥有变量别名的一些特性同时又具有指针的特性。与变量别名和指针的比较对于引用的使用各种运算及取地址与对变量完全一样。所不一样的是作为函数的形参的时候,传递给函数的不是值而是该变量的地址。类似于指针。 阅读全文
posted @ 2015-01-11 12:03 夏大王 阅读(144) 评论(0) 推荐(0)
摘要:1.1.1 命名空间namespace的作用命名空间主要是为了解决编程开发各模块中,标识名重复的现象。命名空间为这些标识加了一个范围限制,这样在不同的命名空间中可以使用相同的标识名,需要用到这些标识的时候,在之前声明使用的是那个空间的即可。1.1.2 命名空间的定义有名的命名空间: namespac... 阅读全文
posted @ 2015-01-10 08:28 夏大王 阅读(320) 评论(0) 推荐(0)
摘要:C++中对于内置的变量及标准库中常见的类定义类常见的操作符含义,对于自定义的类也可以通过关键字operate重载操作符的含义。C++中支持重载的目的诚然操作符的重载可以通过使用函数实现同样的功能,但C++中引入重载,我想是为了增加代码的见解性和可读性。具体的使用在要重载的参数名儿前加operate关... 阅读全文
posted @ 2014-07-16 12:34 夏大王 阅读(344) 评论(0) 推荐(0)
摘要:用自己的话解释清楚C++的模板编程模板编程是为了解决什么问题而出现的?提高代码的重用性,提高代码的利用率。泛型编程的一种实现。模板的精神是:类型参数化。模板的实现模板分为:函数模板、类模板函数模板定义函数模板的一般形式为:template通用函数定义通用函数定义或template通用函数定义通用函数... 阅读全文
posted @ 2014-07-14 18:43 夏大王 阅读(462) 评论(0) 推荐(0)
摘要:C++中的标准程序库(简称标准库)是类库和函数的集合,其使用核心语言写成。标准程序库提供若干泛型容器、函数对象、泛型字符串和流(包含交互和文件I/O),支持部分语言特性和常用的函数,如开平方根。C++标准程序库也吸收了ISOC90C标准程序库。标准程序库的特性声明于std命名空间之中。标准模板程序库(STL=StandardTemplateLibrary)是C++标准程序库的子集,包含容器、算法、迭代器、函数对象等。也有些人使用术语STL代表C++标准程序库。使用C++标准程序库时,不必加上“.h”。标准头文件以下文件包含标准库的声明。容器一般字符串输入/输出流数值语言支持C标准库来自C标准库 阅读全文
posted @ 2014-03-16 21:32 夏大王 阅读(765) 评论(0) 推荐(0)
摘要:若想使用标准库的string类需要使用如下声明:#includeUsingstd::string;Usingstd::wstring;那么就可以使用这两个类了;以string为例子介绍其对外接口:String类的构造函数Strings1; //Strings2(s1);Strings3(“holloworld!”);Strings4(n,‘c’);string对象的操作s.empty()如果s为空串,则返回true,否则返回false。s.size()返回s中字符的个数s[n]返回s中位置为n的字符,位置从0开始计数s1+s2把s1和s2连接成一个新字符串,返回新生成的字符串s1=s2把s1内 阅读全文
posted @ 2014-03-15 21:29 夏大王 阅读(315) 评论(0) 推荐(0)
摘要:c++ primer读书笔记 关联容器与顺序容器的差别本质的区别是:顺序容器是通过元素在容器内的相对位置来顺序存储和访问元素的;而关联容器则是通过键(key)来存储和读取元素;顺序容器介绍的有 vector list deque;其中vector 相当于数组,顺序存储,便于随机访问,但做插入删除操作的话,消耗资源就比较大;deque则相当于一个双向生长的数组,也便于随机访问,在头尾删除 增加元素的话也不过多消耗资源,但在中间添加删除元素的话跟vector一样,会比较费时费力;而deque则相当于链表,不便于做随机访问,但便于做插入删除操作;适配器:stack 特点是后进先出,栈;que... 阅读全文
posted @ 2012-08-31 00:06 夏大王 阅读(299) 评论(0) 推荐(0)
摘要:Xml基本用法xml文件格式如下: <?xml version= "1.0 " encoding= "utf-8 "?> <userdata createuser= "false "> <dataconnection> <server> localhost </server> <uid> sa </uid> <pwd> </pwd> </dataconnection> <net> <name> 阅读全文
posted @ 2012-01-17 10:13 夏大王 阅读(975) 评论(0) 推荐(0)
摘要:Preprocessor directives are lines included in the code of our programs that are not program statements but directives for the preprocessor. These lines are always preceded by a hash sign (#). The preprocessor is executed before the actual compilation of code begins, therefore the preprocessor digest 阅读全文
posted @ 2012-01-16 16:30 夏大王 阅读(440) 评论(0) 推荐(0)
摘要:用mingw32-make前修改一下makefile文件,改为如下# DEBUG can be set to YES to include debugging info, or NO otherwise(不是DEBUG)DEBUG := NO# PROFILE can be set to YES to include profiling info, or NO otherwisePROFILE := NO# TINYXML_USE_STL can be used to turn on STL support. NO, then STL# will not be used. YES will i 阅读全文
posted @ 2012-01-14 13:54 夏大王 阅读(1146) 评论(0) 推荐(0)
摘要:C程序设计中,内存操作相关的错误可以说是最常见,同时也是非常隐蔽的一类错误。这类错误往往导致程序莫名其妙地崩溃、耗尽系统资源,或是形成严重的安全弱点。在 FreeBSD,以及多数其他 BSD 派生的系统中,重复 free() 在默认情况下都会导致 C 函数库调用 abort() 终止程序。除了 malloc(3) 函数族本身的设计之外,这也是一项非常重要的安全特性。与此相反,包括 *BSD 在内的多数系统的 C 函数库并不对堆进行审计,也就是说,从 API 设计者的观点来看,内存泄漏并不被认为是非常严重的程序设计问题。为什么会有这样的区别呢?事实上,内存泄漏同样可以导致比较严重的问题,例如响应 阅读全文
posted @ 2011-12-06 17:00 夏大王 阅读(1044) 评论(0) 推荐(0)
摘要:嵌入式程序员应知道的基本问题 C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。从被面试者的角度来讲,你能了解许多关于出题者或监考者的情况。这个测试只是出题者为显示其对ANSI标准细节的知识而不是技术技巧而设计吗?如要你答出某个字符的ASCII值。这些问题着重考察你的系统调用和内存分配策略方面的能力吗?这标志着出题者也许花时间在微机上而不是在嵌入式系统上。从面试者的角度来讲,一个测试也许能从多方面揭示应试者的素质:最基本的,你能了解应试者C语言的水平。不管怎么样,看一下这人如何回答他不会的问题也是满有趣。应试者是以好的直觉做出明智的选择,还是只是瞎蒙呢?当应试者在某个问题上卡住时是找借 阅读全文
posted @ 2011-10-26 16:47 夏大王 阅读(252) 评论(0) 推荐(0)
摘要:1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不同。 2.从标准头文件说起 某企业曾经给出如下的一道面试题: 面试题 为什么标准头文件都有类似以下的结构?#ifndef __INCvxWorksh#define __INCvxWorksh #ifdef 阅读全文
posted @ 2011-03-17 17:03 夏大王 阅读(231) 评论(0) 推荐(0)
摘要:1.简介 虚函数是C++中用于实现多态(polymorphism)的机制。核心理念就是通过基类访问派生类定义的函数。假设我们有下面的类层次:class A{public:virtual void foo() { cout << "A::foo() is called" << endl;}};class B: public A{public:virtual void foo() { cout << "B::foo() is called" << endl;}};那么,在使用的时候,我们可以:A * a = n 阅读全文
posted @ 2011-03-11 16:34 夏大王 阅读(270) 评论(0) 推荐(0)
摘要:new”是C++的一个关键字,同时也是操作符。关于new的话题非常多,因为它确实比较复杂,也非常神秘,下面我将把我了解到的与new有关的内容做一个总结。new的过程当我们使用关键字new在堆上动态创建一个对象时,它实际上做了三件事:获得一块内存空间、调用构造函数、返回正确的指针。当然,如果我们创建的是简单类型的变量,那么第二步会被省略。假如我们定义了如下一个类A:class A{ int i;public: A(int _i) :i(_i*_i) {} void Say() { printf("i=%d\n", i); }};//调用new:A* pa = new A(3) 阅读全文
posted @ 2011-03-02 23:18 夏大王 阅读(194) 评论(0) 推荐(0)