现在位置: 首页 > c++
先看下面一段代码,试着分析一下在程序的运行过程,何时调用构造函数,何时调用析构函数,理清思路后,和程序后面的结果比对一下,看看预想的和实际的结果有什么不同。 #include "stdafx.h" #include<iostream> #include<string> #include<vector> using namespace std; struct exmp1 { //默认构造函数 exmp1() {   cout<<"exmp1()"<<...
阅读全文
2012-11-20 16:58 工业·编程 ⁄ 共 586字 暂无评论
一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和...
阅读全文
2012-11-18 23:07 工业·编程 ⁄ 共 2685字 评论 1 条
1. 什么是命名空间 在编程语言中,命名空间是一种特殊的作用域,它包含了处于该作用域中的所有标示符,而且其本身也是由标示符表示的。命名空间的使用目的是为了将逻辑相关的标示符限定在一起,组成相应的命名空间,可使整个系统更加模块化,最重要的是它可以防止命名冲突。就好比在两个函数或类中定义相同名字的对象一样,利用作用域标示符限定该对象是哪个类里定义的。 2. C++中的命名空间定义 在C++语言中,命名空间使用name...
阅读全文
Windows对文件的读写提供了很丰富的操作手段,如: 1. FILE *fp, fstearm...; (C/C++) 2. CFile, CStdioFile...; (MFC) 3. CreateFile, ReadFile...;(API) ... 在处理一般的文件(文本/非文本),这些足够了。然而在处理比较大的文件如 几十M, 几百M, 甚至上G的文件, 这时再用一般手段处理,系统就显的力不从心了 要把文件读出,再写进,耗费的是CPU利用率与内存以及IO的频繁操作。这显然是 令用户难...
阅读全文
2012-11-10 22:20 工业·编程 ⁄ 共 858字 暂无评论
1. C语言允许在一个结构体中以位位单位来指定其成员所占内存长度,这种以ノ?lt;br />    成员称为"位段"或称"位域".    例如:  struct pack           {      unsigned a: 2;             unsigned b: 6;      ...
阅读全文
2012-11-10 22:16 工业·编程 ⁄ 共 367字 暂无评论
今天在群里和网有讨论C/C++时,我无意中谈到了共用体,某部分人竟然还不知道共用体为何物,要知道他们其中有些人C++是比较厉害的,我当时就老大郁闷。有好几个朋友都说共用体到现在基本都没人用了,我想想,自己写程序时,什么时候用过共用体了?共用体和结构相比,结构是首选的。我不知道一次只能调用一个成员的共用体到底有什么优势可言,可能是我太菜吧,共用体的妙处未能体会到。我觉得有时看看一些被大多数人遗忘的技术也...
阅读全文
    为了让这个名单(也包括后续文章中提到的其他名单)更有价值,我给自己定了两条原则。第一,只挑五本。哪怕多一本,让它共享这份荣誉的位子也没有,也没有为那些差不多靠边者准备优秀奖。五个位子,五本书。第二,我没有将自己的书排除在竞争行列之外。如果我要评判别人的书,当然也不能放过自己的。     这两个原则已经相当公平而严格了,因此我在其他方面就可以偷点懒:我不打算对名单上的...
阅读全文
    一个人对C 了解得越好,在写C++程序时大概就越难避免C 的风格,并会因此丢掉C++ 的某些潜在优势。这里是几个有关的要点,在这些地方做同样的事情时,在C++ 里存在比C更好的方式: [1] 在C村里几乎不需要用宏。用const或enum 定义明显的常量,用inline避免函数调用的额外开销,用template去刻画一族函数或者类型,用namespace 去避免名字冲突。 [2] 不要在你需要变量之前去声明它,以保证你能立即对它进行初...
阅读全文
2012-10-24 20:48 工业·编程 ⁄ 共 3461字 暂无评论
C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不同。 1.从标准头文件说起     某...
阅读全文
C++中异常处理的语法--       关键字     1、   try     2、   catch     3、   throw    其中关键字try表示定义一个受到监控、受到保护的程序代码块;关键字catch与try遥相呼应,定义当try   block(受监控的程序块)出现异常时,错误处理的程序模块,并且每个catch   block都带一个参...
阅读全文