C++
日月行者
这个作者很懒,什么都没留下…
展开
-
构造函数,拷贝构造和赋值运算符‘=‘的区别
例子class CExample {private: char *pBuffer; //类的对象中包含指针,指向动态分配的内存资源 int nSize; public: CExample() {pBuffer=NULL;nSize=0;} ~CExample() {delete pBuffer;} void Ini原创 2015-05-27 10:40:41 · 2200 阅读 · 0 评论 -
局部变量、全局变量
在《C语言函数的参数和返回值》中提到,形参变量只在被调用期间才分配内存单元,调用结束立即释放。这一点表明形参变量只有在函数内才是有效的,离开该函数就不能再使用了,称为变量的作用域。所谓作用域(Scope),就是变量的作用范围。不仅对于形参变量,C语言中所有的变量都有自己的作用域。变量定义的方式不同,其作用域也不同。C语言中的变量,按作用域范围可分为两种:局部变量和全局变量。转载 2015-11-06 16:41:41 · 640 阅读 · 0 评论 -
C++类中成员变量的初始化有两种方式
C++类中成员变量的初始化有两种方式: 构造函数初始化列表和构造函数体内赋值。下面看看两种方式有何不同。 成员变量初始化的顺序是按照在那种定义的顺序。1 内部数据类型(char,int……指针等)class Animal{public: Animal(int weight,int height): //A初始化列转载 2015-09-17 09:43:50 · 757 阅读 · 0 评论 -
malloc/free 与new/delete对比
在C里,内存管理是通过专门的函数来实现。另外,为了兼容各种编程语言,操作系统提供的接口通常是 C 语言写成的函数声明 (Windows 本身也由C和汇编语言写成)。1 分配内存 malloc 函数需要包含头文件: and 函数声明(函数原型)void *malloc(int size);说明:malloc 向系统申请分配指定size个字节的内存空间。返回类型是 v转载 2015-09-14 20:33:02 · 265 阅读 · 0 评论 -
C++指针数组,数组指针,数组名,二维数组
本文较为详细的分析了关于理解C++指针数组,数组指针,数组名,二维数组的一些技巧。是比较重要的概念,相信对于大家的C++程序设计有一定的帮助作用。一、关于数组名假设有数组:?1inta[3] = {1, 2, 3}1.数组名代表数组第一个元素的地址,注意,不是数组地址(虽然值转载 2015-09-28 17:00:22 · 406 阅读 · 0 评论 -
const mutable volatile详解
const修饰普通变量和指针const修饰变量,一般有两种写法:const TYPE value;TYPE const value;这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。对于一个非指针的类型TYPE,无论怎么写,都是一个含义,即value值不可变。 例如:const int nValue; //nValue是co转载 2015-09-10 15:22:48 · 260 阅读 · 0 评论 -
c++中的点号(.),冒号(:)和双冒号(::)运算符
1.冒号(:)用法(1)表示机构内位域的定义(即该变量占几个bit空间)typedef struct _XXX{unsigned char a:4;unsigned char c;} XXX;(2)构造函数后面的冒号起分割作用,是类给成员变量赋值的方法,初始化列表,更适用于成员变量的常量const型。struct _XXX{_XXX(转载 2015-08-17 17:40:28 · 2383 阅读 · 0 评论 -
C++中构造函数、复制构造函数和赋值操作符
C++中构造函数、复制构造函数和赋值操作符三者分别何时被调用很容易让人犯迷糊,下面结合例子就这个问题讨论一下。 假设我们有如下代码段:[cpp] view plaincopyprint?#include #include using namespace std; class Foo { public转载 2015-07-23 11:11:54 · 338 阅读 · 0 评论 -
new 和malloc的区别
在使用上,malloc 和 new 至少有两个不同: new 返回指定类型的指针,并且可以自动计算所需要大小。比如:123int*p;p=new int;//返回类型为int*类型(整数型指针),分配大小为sizeof(int);或:12转载 2015-07-23 11:40:02 · 318 阅读 · 0 评论 -
何时必须使用初始化列表
何谓初始化列表与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。在C++中,struct和class的唯一区别是默认的访问性不同,而这里我们不考虑访问性的问题,所以下面的代码都以struct来演示。struct foo{ string name ; int id ; foo(s转载 2015-07-23 10:14:39 · 665 阅读 · 0 评论 -
extern "C"
C/C++采用的是分别编译模型, 源代码只要声明函数, 就可调用。编译时,在函数调用处生成一个符号引用。链接时,将函数调用处的符号引用,替换成地址(甚至仍有可能继续保留符号, 载入时再计算地址)。所以, 以下两者必须完全比配, 否则链接时会出错。1. 函数调用处引用的符号名2. 函数定义处公开的符号名如何使得两者匹配?无论是在调用处还转载 2015-07-20 21:57:33 · 369 阅读 · 0 评论 -
strcpy和memcpy的区别
strcpy和memcpy的区别strcpy和memcpy都是标准C库函数,它们有下面的特点。strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。已知strcpy函数的原型是:char* strcpy(char* dest, const char* src);memcpy提供了一般内存的复制。即memcpy对于需转载 2015-07-27 14:44:07 · 367 阅读 · 0 评论 -
C语言中的static
在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内容char a = 'A'; // global variable转载 2015-07-08 21:09:38 · 264 阅读 · 0 评论 -
链表总结——单链表的头指针、头结点与首元结点
http://www.nowamagic.net/librarys/veda/detail/2220转载 2015-06-18 10:46:00 · 731 阅读 · 0 评论 -
字符串赋值的两种形式的区别
字符串的表现形式有两种:一种是以字符数组的形式,如char buf[20]="I love china";另一种是以字符指针的形式,如char *str="I love china" 现将一个字符串赋值给一个字符数组或一个字符指针char buf[20]; char*str;buf = "I love china"; strcpy (buf, "I翻译 2015-05-28 10:13:43 · 3080 阅读 · 0 评论 -
while(cin>>word)
1234567891011121314151617181920212223242526272829#include #include转载 2015-10-10 10:33:39 · 1065 阅读 · 0 评论