随笔分类 - C++
摘要:dynamic_cast: 通常在基类和派生类之间转换时使用,run-time castconst_cast: 主要针对const和volatile的转换.static_cast: 一般的转换,no run-time check.通常,如果你不知道该用哪个,就用这个。reinterpret_cast...
阅读全文
摘要:一、预备知识―程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)― 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) ― 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收...
阅读全文
摘要:其实,这两个语句的位置不同,会出现不同的解释。这主要是由于 static 具有的两重意义所导致的:(1) 如果 static int foo; 这一句位于函数中,则 static 表示的是存储属性,表明 foo 是一个静态变量。(2) 如果 static int foo; 这一句位于函数外面,则 f...
阅读全文
摘要:一、#define的基本用法 #define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能 理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运...
阅读全文
摘要:baidu的笔试题目用C语言实现一个公用库函数void * memmove(void *dest,const void *src,size_t n)。该函数的功能是拷贝src所指的内存内容前n个字节到dest所指的地址上。注意,作为公用库函数,请注意安全检查,注意处理内存区重合的情况。void* m...
阅读全文
摘要:双向循环链表list list是双向循环链表,,每一个元素都知道前面一个元素和后面一个元素。在STL中,list和vector一样,是两个常被使用的容器。和vector不一样的是,list不支持对元素的任意存取。list中提供的成员函数与vector类似,不过list提供对表首元素的操作push_f...
阅读全文
摘要:1. 泛型指针泛型指针有多种含义。(1) 指void*指针,可以指向任意数据类型,因此具有“泛型”含义。(2) 指具有指针特性的泛型数据结构,包含泛型的迭代器、智能指针等。广义的迭代器是一种不透明指针,能够实现遍历访问操作。通常所说的迭代器是指狭义的迭代器,即基于C++的STL中基于泛型的itera...
阅读全文
摘要:今天Aear讲的是class.ctor也就是constructor,和 class.dtor,destructor.相信大家都知道constructor和destructor是做什么用的,基本功能我就不废话了。下面先说效率的问题,让我们看个简单的例子:classSomeClass;//forward...
阅读全文
摘要:【FROM MSDN && 百科】原型: void *memmove( void* dest, const void* src,size_tcount );#include由src所指内存区域复制count个字节到dest所指内存区域。src和dest所指内存区域可以重叠,但复制后dest内容会被更...
阅读全文
摘要:在C和C++中,有三种使用存储区的基本方式:[静态存储区(Static Memory)]在静态存储区中,连接器(linker)根据程序的需求为对象分配空间。全局变量、静态类成员以及函数中的静态变量都被分配在该区域中。一个在该区域中分配的对象只被构造一次,其生存期一直维持到程序结束。在程序运行的时候...
阅读全文
posted @ 2014-09-02 20:37
RanShW
摘要:一个是用来传值的 一个是用来获取首地址的&(引用)==>出现在变量声明语句中位于变量左边时,表示声明的是引用.例如: int &rf; // 声明一个int型的引用rf.&(取地址运算符)==>在给变量赋初值时出现在等号右边或在执行语句中作为一元运算符出现时 表示取对象的地址.在C++中,既有引用又...
阅读全文
posted @ 2014-09-02 15:37
RanShW
摘要:首先,C++标准规定:delete空指针是合法的,没有副作用。但是,delete p后,只是释放了指针指向的内存空间。p并不会自动被置为NULL,而且指针还在,同时还指向了之前的地址。 问题来了,对一个非空指针delete后,若没有赋NULL,若再次delete的话,有可能出现问题。如下代码int ...
阅读全文
posted @ 2014-09-02 10:28
RanShW
摘要:C++学了这么多年你知道为什么定义类时,类的定义放在.h文件中,而类的实现放在cpp文件中。它们为什么能够关联到一起呢?你知道什么东西可以放在.h文件中,什么不能。什么东西又可以放在cpp文件中。如果你忘记了或是压根就不明白,那么读过此文你会清晰无比!!首先谈下声明与定义的区别。 声明是将一个名称引...
阅读全文
posted @ 2014-09-01 21:31
RanShW

浙公网安备 33010602011771号