2011年9月26日

操作符重载(小原则)

摘要: 一.运算符重载的含义与定义方式 l C++已有的运算符只适合处理C++的基本数据类型。 l C++允许重新定义已有的运算符(运算符重载),以便它能处理程序员定义类型(类类型)。 l 运算符重载就是赋予已有的运算符多重含义。运算符重载与函数重载类似,... 阅读全文

posted @ 2011-09-26 15:57 封起De日子 阅读(124) 评论(0) 推荐(0) 编辑

C++虚函数表解析[重量级]

摘要: C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚... 阅读全文

posted @ 2011-09-26 15:27 封起De日子 阅读(119) 评论(0) 推荐(0) 编辑

内存字节对齐

摘要: 写出一个struct,然后sizeof,你会不会经常对结果感到奇怪?sizeof的结果往往都比你声明的变量总长度要大,这是怎么回事呢?讲讲字节对齐吧. /******************************分割线 如果体系结构是不对齐的,A中的成员将会一个挨一个存储,从而sizeo... 阅读全文

posted @ 2011-09-26 14:15 封起De日子 阅读(100) 评论(0) 推荐(0) 编辑

C语言中auto,register,static,const,volatile的区别

摘要: 1)auto 这个关键字用于声明变量的生存期为自动,即将不在任何类、结构、枚举、联合和函数中定义的变量视为全局变量,而在函数中定义的变量视为局部变量。这个关键字不怎么多写,因为所有的变量默认就是auto的。 (2)register 这个关键字命令编译器尽可能的将变量存在CPU内部寄存... 阅读全文

posted @ 2011-09-26 13:07 封起De日子 阅读(98) 评论(0) 推荐(0) 编辑

头文件不宜定义变量原因解析

摘要: test-1.0使用#ifndef只是防止了头文件被重复包含(其实本例中只有一个头件,不会存在重复包含的问题),但是无法防止变量被重复定义。 view plain # vi test.c ------------------------------- #include... 阅读全文

posted @ 2011-09-26 12:46 封起De日子 阅读(162) 评论(0) 推荐(0) 编辑

char str[] 和 char *str 的区别

摘要: view plain char* get_str(void) { char str[] = {"abcd"}; return str; } char str[] = {"abcd"};定义了一个局部字符数组,尽管是数组,但它是一... 阅读全文

posted @ 2011-09-26 11:33 封起De日子 阅读(178) 评论(0) 推荐(0) 编辑

堆和栈的区别(转过无数次的文章)

摘要: 一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释... 阅读全文

posted @ 2011-09-26 11:29 封起De日子 阅读(83) 评论(0) 推荐(0) 编辑

导航