C/C++
chance_wang
这个作者很懒,什么都没留下…
展开
-
[C++]virtual关键字:虚函数,虚继承和虚基类
virtual原创 2007-07-06 10:09:00 · 1518 阅读 · 0 评论 -
namespace & using
命名空间(namespace)是为了避免可能遇到的名字冲突而设计的。一个命名空间是一个作用域,通过命名空间内部定义库中的名字,库的作者(以及用户)可以避免全局名字固有的限制。命名空间的语法形如:namespace space_name { ... //可以出现在全局作用域的任意声明,包括可以是其他命名空间}1.每个命名空间是一个作用域。命名空间内部出现的名字必须唯一,但不同命名空间中可以具有原创 2008-10-04 01:35:00 · 2487 阅读 · 0 评论 -
const reference和nonconst reference的区别
普通的reference必须用与该引用同类型的对象来初始化。例如:int ival = 1024;int &refVal = ival; // ok: refval refers to ivalint &refVal2; // error: 引用必须初始化int &refVal3 = 10; // error: 必须用对象进行初始化,而不能是字面值常量(literal c原创 2008-10-03 21:44:00 · 2557 阅读 · 0 评论 -
经典题目:strcpy函数
已知strcpy函数的原型是:char * strcpy(char * strDest,const char * strSrc);1.不调用库函数,实现strcpy函数。2.解释为什么要返回char *。解说:1.strcpy的实现代码char * strcpy(char * strDest,const char * strSrc){ if ((strDest==NULL)||(strSrc==转载 2008-09-10 10:30:00 · 1248 阅读 · 0 评论 -
Linux 下 C++程序的异常处理技巧
处理 C++ 中的异常会在语言级别上遇到少许隐含限制,但在某些情况下,您可以绕过它们。学习各种利用异常的方法,您就可以生产更可靠的应用程序。 保留异常来源信息 在 C++中,无论何时在处理程序内捕获一个异常,关于该异常来源的信息都是不为人知的。异常的具体来源可以提供许多更好地处理该异常的重要信息,或者提供一些可以附加到错误日志的信息,以便以后进行分析。 为了解决这一问题,可以在抛出异转载 2008-09-05 11:00:00 · 968 阅读 · 0 评论 -
Linux上的C/C++编译器gcc/egcs详解
FROM: http://www.yesky.com/27/1901527.shtml一.运行 gcc/egcs Linux 中最重要的软件开发工具是 GCC。GCC 是 GNU 的 C 和 C++ 编译器。实际上,GCC能够编译三种语言:C、C++和ObjectC(C语言的一种面向对象扩展)。利用 gcc 命令可同时编译并连接 C 和 C++ 源程序。 #DEMO#: hello.c 如果你转载 2008-09-05 10:19:00 · 744 阅读 · 0 评论 -
学习C++应该看的几本书(转)
FROM: http://www.cppblog.com/luyuplus/archive/2007/10/14/34218.html 每个人的学习历程都是从浅入深的,学习C++也不例外。 以前在网上看过这样一个帖子,正在看其中的几本,觉得不错,贴出来与大家分享.C++/OPP/OOD系列:层级一:语法/语意(C++)[Lippman2000] Essential C++Essenti转载 2007-10-16 16:53:00 · 882 阅读 · 0 评论 -
Segmentation Fault
An error in which a running Unix program attempts to access memory not allocated to it and terminates with a segmentation violation error and usually a core dump.Segmentation Fault occurred when runni原创 2007-06-02 00:47:00 · 2964 阅读 · 0 评论 -
malloc/free和new/delete的区别
malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc转载 2007-05-14 22:31:00 · 30515 阅读 · 5 评论 -
delete和delete[] 的区别
我的理解:对于一个数组,delete和delete[]都可以释放内存空间,但是只有delete[]才会调用每一个数组元素的析构函数,而delete只能调用第一个数组元素的析构函数。对于基本数据类型,没有析构函数,所以使用delete和delete[]没有区别。网上搜到的一个解答,原始出处是http://bbs.chinaunix.net/C++告诉我们在回收用 new 分配的单个对象的内存空间的时原创 2007-05-14 22:46:00 · 1944 阅读 · 3 评论 -
关键字解析——volatile,mutable
volatile这个单词在英语中的含义是“挥发性的, 可变的, 不稳定的”。C/C++中使用这个词作为限定符,它告诉编译器某个变量可能在直接控制之外被改变,因此不要执行优化动作。其语法与const相同,都是对类型的附加修饰符。volatile int display_register;volatile Task *curr_task;mutable在英语中的含义是“可变的, 易变的原创 2007-04-23 00:56:00 · 984 阅读 · 1 评论 -
关键字解析——const
还没来得及提交,电脑死机了下次有空再写,先列些参考页面在这里。Understanding the const qualifierDealing with Data:The const Qualifierenum和#define、constBjarne Stroustrups FAQBjarne Stroustrups C++ Style and Technique FAQC#中 const 和原创 2007-04-18 02:14:00 · 839 阅读 · 0 评论 -
C语言的历史(转)(译)
发信人: daizisheng (呆子圣), 信区: AnsiC 标 题: C语言历史 发信站: 瀚海星云 (Thu May 29 17:49:11 2003) C语言的发展 (原文在这里)---Dennis M. Ritchie (就是K&R中的R) dmr@bell-labs.com 翻译:daizisheng,水平有限,敬请原谅 概述: 70年代初,C语言以系统实现语言(sys转载 2007-04-15 22:56:00 · 2046 阅读 · 0 评论 -
关键字解析——static
在C、C++、Java等语言中,都有static关键字,作为一个英语单词来讲,这个词的基本含义是“静态的、固定的”。顾名思义,这个词是用来声明静态对象的。1、C语言中的staticC语言程序可以看成由一系列外部对象构成,这些外部对象可能是变量或函数。而内部变量是指定义在函数内部的函数参数及变量。外部变量定义在函数之外,因此可以在许多函数中使用。由于C语言不允许在一个函数中定义其它函数,因此函数本身原创 2007-04-14 18:26:00 · 862 阅读 · 0 评论 -
C++内存分配的五种方法(转)
在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。自由存储区,就是转载 2007-04-14 17:24:00 · 877 阅读 · 0 评论 -
堆和栈的比较(资料摘录)
堆(heap)和栈(stack)是C/C++编程不可避免会碰到的两个基本概念。 在具体的C/C++编程框架中,这两个概念并不是并行的。对底层机器代码的研究可以揭示,栈是机器系统提供的数据结构,而堆则是C/C++函数库提供的。 现代串行执行机制计算机,都直接在代码底层支持栈的数据结构。这体现在,有专门的寄存器指向栈所在的地址,有专门的机器指令完成数据入栈出栈的操作。这种机制的特点是效率高转载 2007-04-14 15:47:00 · 906 阅读 · 0 评论 -
位运算常用技巧
(1) 判断int型变量a是奇数还是偶数 a&1 == 0 偶数 a&1 == 1 奇数(2) 取int型变量a的第k位 (k=0,1,2……sizeof(int)),即a>>k&1(3) 将int型变量a的第k位清0,即a=a&~(1(4) 将int型变量a的第k位置1, 即a=a|(1(5) int型变量循环左移k次,即a=a>16-k (设sizeof(int)=16)(6) int型变量a循环右移k次,即a=a>>k|a(7)整数的平均值对于两个整数x,y,如果用 (原创 2010-12-27 10:27:00 · 1209 阅读 · 0 评论