C++基础
文章平均质量分 58
yukin_xue
这个作者很懒,什么都没留下…
展开
-
C++ 数组array与vector的比较
1:array 定义的时候必须定义数组的元素个数;而vector 不需要;且只能包含整型字面值常量,枚举常量或者用常量表达式初始化的整型const对象,非const变量以及需要到运行阶段才知道其值的const变量都不能用来定义数组的维度.2:array 定义后的空间是固定的了,不能改变;而vector 要灵活得多,可再加或减.3:vector有一系列的函数操作,非常方便使用.和vect转载 2012-03-25 12:11:02 · 31722 阅读 · 5 评论 -
LNK2005 LIBCMT.lib/nafxcw.lib 编译链接错误
运行环境:在非MFC程序中,添加MFC支持,静态链接MFC库。发生错误:1>正在链接...1>nafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) 已经在 LIBCMT.lib(new.obj) 中定义1>nafxcw.lib(afxmem原创 2012-07-11 11:17:30 · 4071 阅读 · 2 评论 -
进程管理
转载自:http://metc.gdut.edu.cn/os/oscai/chapter2/pages/ch29.htm#%E5%9F%BA%E6%9C%AC%E6%96%B9%E6%B3%95 先,介绍一个由于共享资源而产生死锁的例子: 设系转载 2012-11-06 16:08:23 · 765 阅读 · 0 评论 -
C++ 全局变量、局部变量、静态全局变量、静态局部变量的区别
全局变量、局部变量、静态全局变量、静态局部变量的区别C++变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为6种:全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件作用域。从作用域看:全局变量具有全局作用域。全局变量只需在一个源文件中定义,就可以作用于所有的源文件。当然,其他不包含全局变量定义的源文件需要用extern 关键字再次声明这个全局变量。静转载 2012-11-08 11:32:09 · 419 阅读 · 0 评论 -
strcpy和memcpy的区别
strcpy和memcpy的区别strcpy和memcpy都是标准C库函数,它们有下面的特点。strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。已知strcpy函数的原型是:char* strcpy(char* dest, const char* src);memcpy提供了一般内存的复制。即memcpy对于需转载 2012-11-08 11:39:21 · 418 阅读 · 0 评论 -
Sizeof与Strlen的区别与联系
Sizeof与Strlen的区别与联系一、sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。 它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。 由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof转载 2012-11-08 13:43:11 · 379 阅读 · 0 评论 -
构造函数、析构函数是否要声明为虚函数的问题
转载 2012-12-20 12:02:42 · 400 阅读 · 0 评论 -
编程命名中的7+1个提示
前几天Neo写过《编程中的命名设计那点事》,这里也有另外一篇和程序命名的文章,可以从另一个角度看看。1.- 变量应该是尽可能的望文知意。千万不要使用教材中的命名方式。好的变量: daysDateRange, flightNumber, carColor.坏的变量: days, dRange, temp, data, aux…在我们的日常工作中,有很大数量的开发人员喜欢使用短的变量名转载 2012-12-20 14:46:22 · 483 阅读 · 0 评论 -
堆和栈
堆栈 在计算机领域,堆栈是一个不容忽视的概念,但是很多人甚至是计算机专业的人也没有明确堆栈其实是两种数据结构。 要点: 堆:顺序随意 栈:先进后出 堆和栈的区别 一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变转载 2012-12-20 13:47:33 · 529 阅读 · 0 评论 -
C++ 虚函数表解析
原文:http://blog.csdn.net/haoel/article/details/1948051C++ 虚函数表解析 陈皓http://blog.csdn.net/haoel 前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这转载 2012-12-20 12:06:14 · 353 阅读 · 0 评论 -
fprintf字符编码
fprintf是ANSI的,UNICODE的,要用fwprintf;也可以用_ftprintf来同时兼容ANSI和UNICODE;只写入了0和1,是因为UNICODE的123456789,实际上内存上是1 \0 2 \0 3 \0 等等等,而fprintf写的是ANSI字符串遇到\0就结束了,所以就只写了一个字节而已。。。_wsetlocale(0, L转载 2013-10-10 12:52:33 · 5819 阅读 · 0 评论 -
long 和 int
程序移植注意:16位系统:long是4字节,int是2字节32位系统:long是4字节,int是4字节64位系统:long是8字节,int是4字节# if __WORDSIZE == 64typedef long int int64_t;# else__extension__typedef long long int int64_t;# endifuint6原创 2013-12-04 11:25:02 · 804 阅读 · 0 评论 -
跨平台数据类型定义
#if (defined _WIN32) || (defined _WINDOWS_)#include // MFC 核心组件和标准组件#else#include typedef uint8_t UINT8;typedef uint16_t UINT16;typedef uint32_t UINT32;typedef uint64_t UINT64;原创 2013-12-04 11:44:05 · 2906 阅读 · 0 评论 -
warning C4996: 'strcpy': This function or variable may be unsafe.
来自:http://wangyali90516.blog.163.com/blog/static/117205101201132525118500/使用VS2005以上版本(VS2005、VS2008、VS2010)编译在其他编译器下正常通过的C语言程序,你可能会遇到类似如下的警告提示: 引用内容warning C4996: 'strcpy': This function or v转载 2013-12-04 11:14:30 · 15501 阅读 · 1 评论 -
URL编码
#pragma onceclass CUrlCode{public: CUrlCode(void){} ~CUrlCode(void){} char dec2hexChar(short int n) { if ( 0 return char( short('0') + n );转载 2012-06-11 13:31:50 · 1608 阅读 · 0 评论 -
windows字符编码转换
// ChineseCode.h: interface for the CChineseCode class.////////////////////////////////////////////////////////////////////////#if !defined(AFX_CHINESECODE_H__E9206178_CA96_4B8A_AB2A_AD94C9CD1转载 2012-06-11 13:29:28 · 2167 阅读 · 0 评论 -
C++ 中析构函数为什么要求是虚的?
这是因为,通过基类指针来销毁派生类对象这个行为,当基类没有虚析构函数时会产生问题。我们知道删除指针对象是没有问题的,指针对象的析构函数会正确调用,但仅限于指针的类型所表示的对象大小。如果以一个基类指针指向其派生类,删除这个基类指针只能删除基类对象部分,而不能删除整个派生类对象,原因是通过基类指针无法访问派生类的析构函数。 但是,如果像其它虚函数一样,基类的析构函数也是虚的,那么派转载 2012-03-09 10:49:02 · 187 阅读 · 0 评论 -
C++的多态性实现机制剖析
C++的多态性实现机制剖析――即VC++视频第三课this指针详细说明作者:孙鑫 时间:2006年1月12日星期四1. 多态性和虚函数我们先看一个例子:例1- 1#includeclass animal{public: void sleep() { cout }转载 2012-03-26 22:29:36 · 571 阅读 · 0 评论 -
出现频率最高的笔试题strcpy写法
出现频率最高的笔试题strcpy写法题目: 题目: 已知strcpy函数的原型是: char * strcpy(char * strDest,const char * strSrc); 1.不调用库函数,实现strcpy函数。 2.解释为什么要返回char *。解说: 1.strcpy的实现代码 char * strcpy(char *转载 2012-03-25 18:26:11 · 927 阅读 · 0 评论 -
C++多态
多态是一种运行期绑定机制,通过这种机制,实现将函数名绑定到函数具体实现代码的目的。 一个函数在内存当中起始的地址就称为这个函数的入口地址。 多态就是将函数名称动态地绑定到函数入口地址的运行期绑定机制。 C++中的运行期绑定与编译期绑定一个函数的名称与其入口地址是紧密相连的,入口地址是函数在内存当中的起始地址。#include usingnamespace转载 2012-03-09 11:24:44 · 411 阅读 · 0 评论 -
public,protect,private访问权限
第一:private, public, protected 访问标号的访问范围。private:只能由1.该类中的函数、2.其友元函数访问。不能被任何其他访问,该类的对象也不能访问。protected:可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。但不能被该类的对象访问。public:可以被1.该类中的函数、2.子类的函数、3.其友元函数访问,也可转载 2012-04-08 14:02:40 · 17305 阅读 · 0 评论 -
C++ const
1、Constconst类型定义:指明变量或对象的值是不能被更新。引入目的:为了取代预编译指令。注意:常量必须初始化。2、const作用:(1)可以定义const常量 例如:const int Max=100;int Array[Max]; (2)便于进行类型检查 例如:void f(const int i)原创 2012-04-08 14:21:54 · 681 阅读 · 0 评论 -
重写、覆盖、重载、隐藏、多态几个概念的区别分析
override->重写(=覆盖)、overload->重载、polymorphism -> 多态 override是重写(覆盖)了一个方法,以实现不同的功能。一般是用于子类在继承父类时,重写(重新实现)父类中的方法。成员函数的重载(overload)、覆盖(override)与隐藏很容易混淆,C++程序员必须要搞清楚概念,否则错误将防不胜防。 1 重载与覆盖 成员转载 2012-04-08 14:41:43 · 5814 阅读 · 1 评论 -
switch(e)
1、switch(e){} e能不能是float型的,为什么? 不能是float, 可以是int,或者可转换成整型的字符型、布尔型、枚举型也可以。语法是这样设计,否则会switch expression not integral,报错的! 原因:switch的判断条件只能是等于,所以对于数据类型的精度要求比较高。字符型、布尔型、枚举型都可以转换成整型进行判断,原创 2012-04-08 14:28:33 · 2399 阅读 · 0 评论 -
自己实现atoi系列
atoi系列是字符跟数字之间转换常用的函数,其实自己实现也是挺快的,这里写一种带格式检测的atoi函数。函数说明atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('/0')才结束转换,并将结果返回。返回值返回转换后的整型数。 #includeint my_atoi(const char * str转载 2012-04-08 15:36:39 · 660 阅读 · 0 评论 -
malloc和new的区别
malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。 对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务转载 2012-03-22 21:35:58 · 539 阅读 · 0 评论 -
C++深拷贝和浅拷贝区别
对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。 #include iostream> using namespace std; class CExample { private: int a;转载 2012-04-12 11:17:46 · 1949 阅读 · 0 评论 -
剖析ifstream打开含中文路径名文件失败的原因
最近写程序的时候遇到了使用ifstream打开含中文路径文件时失败的问题,在网上翻了一下,发现这是一个普遍遇到的问题,在很多人的博文中也都给出了一些解决技巧,但大多是转载的东西,很少对这个问题引发的原因有一个清晰、全面的解释。因此,我觉得有必要对该问题引发的原因作一个详细的剖析,希望对遇到同样问题的朋友们能有所帮助。首先,用一个简单的例子来重现一下我所遇到的问题:(1)在VS2008的“P转载 2012-05-07 18:26:49 · 2432 阅读 · 0 评论 -
JSON数据解析——jsoncpp的使用(上)
转载:http://blog.sina.com.cn/u/1978765352由于工作中需要用到JSON数据,所以解析JSON数据就成了一个非常重要的工作内容。其实用C++解析数据是很繁杂的任务,涉及到很多的数据处理和数据安全问题。好在网上提供了很多的JSON解析库,其中不乏很优秀的,出于效率,还是使用这些第三方的库比较好。我使用的是jsoncpp,这是一个开源的C++的JSON解转载 2014-01-24 11:05:49 · 1304 阅读 · 0 评论