C++
文章平均质量分 89
吖桂
这个作者很懒,什么都没留下…
展开
-
C中的继承和多态
1、引言继承和多态是面向对象语言最强大的功能。有了继承和多态,我们可以完成代码重用。在C中有许多技巧可以实现多态。本文的目的就是演示一种简单和容易的技术,在C中应用继承和多态。通过创建一个VTable(virtual table)和在基类和派生类对象之间提供正确的访问,我们能在C中实现继承和多态。VTable能通过维护一张函数表指针表来实现。为了提供基类和派生类对象之间的访问,我们可以在基转载 2015-01-06 20:51:55 · 296 阅读 · 0 评论 -
ofstream和ifstream详细用法
ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间;在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:1、插入器(2、析取器(>>) 从流中输入数据。比如说系统有一个默认的标准输入流(cin),一般情况下就是指的键盘,所以,cin>>x;就表示从标准输转载 2014-12-27 17:02:19 · 243 阅读 · 0 评论 -
二维数组动态分配和释放
(1)已知第二维Code-1char (*a)[N];//指向数组的指针a = (char (*)[N])malloc(sizeof(char *) * m);printf("%d\n", sizeof(a));//4,指针printf("%d\n", sizeof(a[0]));//N,一维数组free(a);(2)已知第一维Code-2char* a[M转载 2014-12-09 17:11:06 · 222 阅读 · 0 评论 -
动态存储变量与静态存储变量
在C语言中,每一个变量都有3个属性:一是“数据类型”,如int、float、char等,它确定了变量存储长度和运算方式;二是“作用域”,如上节所述,由变量所处的位置确定变量是局部变量还是全局变量,从而确定变量的作用域;三是“存储类别”,即变量在内存中的存储方式,不同的存储方式决定了变量存在的时间,即生存期。 静态存储的变量是指变量在程序执行的全过程中始终占据着大小固定的存储单元转载 2014-12-03 14:07:54 · 1032 阅读 · 0 评论 -
C++11 auto
编程时常常需要把表达式的值赋给变量,这就要求在声明变量的时候清楚地知道表达式的类型。然而要做到这一点并非那么容易,有时根本做不到。c++11新标准引入了auto类型说明符,用它就能让编译器替我们去分析表达式所属类型。例如:int a=3,b=2;auto s=a+b;因为两个变量类型是int ,所以 s的类型也就是int。[cpp]转载 2014-12-17 09:52:17 · 301 阅读 · 0 评论 -
C++11 新特性之 nullptr
对于有一定编程基础的人对于NULL这个毫不陌生,但是NULL并不是一个关键字而是一个宏,他在C语言中这样定义:[cpp] view plaincopy#define NULL (void*)0 被定义为了一个(void*)0的宏,所以NULL是一个不指向任何对象的指针,也可以用0表示。这样定义在C语言中使用是毫无问题的。但是,C+转载 2014-12-17 10:01:06 · 339 阅读 · 0 评论 -
Segmentation Fault in Linux(段错误)
何为段错误:当程序试图访问不被允许访问的内存区域(比如,尝试写一块属于操作系统的内存),或以错误的类型访问内存区域(比如,尝试写一块只读内存)。这个描述是准确的。SIGSEGV是在访问内存时发生的错误,它属于内存管理的范畴SIGSEGV是一个用户态的概念,是操作系统在用户态程序错误访问内存时所做出的处理当用户态程序访问(访问表示读、写或执行)不允许访问的内存时,产生SIGS原创 2014-11-30 18:47:43 · 401 阅读 · 0 评论