C/C++
文章平均质量分 62
beckle_ye
生活的美好让我倍感珍惜
生活的乐趣让我更有激情
为了自己 为了生活 为了……
展开
-
C语言文件操作重难点(原)
发现很多人对文件操作有不了解的,自己又回过头看了看,总结提升了一下,也小有收获。常见的注意事项就不说了,只列举了几个个人认为有用的。 1. 常有人说:EOF可以作为文本文件的结束 标志,但不能作为二进制文件的结束符.feof函数既可以判断二进制文件,又可以判断文本文件.这是为什么?例:ch=fgetc(fp);while(EOF != ch){ p原创 2009-10-17 15:10:00 · 1362 阅读 · 0 评论 -
枚举类型(C和C++中的差别)
<br />枚举类型是被当作常量来看待的。<br />C和C++里面常量不太一样:<br />1、 C里面常量就和普通变量没什么两样,都是在栈里面,而且是可寻址的(也就是除了不能更改以外和普通变量没有区别) <br />2、而C++里面的常量在编译的时候被放入符号表里面,如果没有显式要求,其将是不可寻址的<br /><br />访问类中的枚举元素:类名 : : 枚举元素名<br />例如:<br />class FileAcess<br />{<br />public:<br /> enum { Wri原创 2011-03-26 10:40:00 · 1520 阅读 · 0 评论 -
空参数列表的函数在C和C++的差异
对于一个“参数列表尾空”的函数来说,C和C++的“看法”是不同的。 函数声明: int fun(); 对于C来说,函数fun是任意个数的任意参数的函数;不会进行类型检查 对于C++来说,函数fun是没有参数的函数。原创 2010-05-22 13:31:00 · 619 阅读 · 0 评论 -
C语言中static和extern比较
对于全局变量和局部变量,static的修饰有一点让人混淆的地方。 1、对于全局变量(全局函数),定义如下: int a = 0; 此处没有加上static修饰,但是,变量a是存放在静态存储区的。不过,变量a的可见性是所有translation unit(编译单元)。 如果将其定义改成: static int a = 0; 变量a的可见性(v原创 2010-05-23 20:55:00 · 550 阅读 · 0 评论 -
函数重载,覆盖与隐藏
函数重载:1. 作用域相同(同一类中)2. 参数不同(类型或者个数)3. 函数名相同4. 基类关键字Virtual关键字可有可无 函数覆盖:子类覆盖父类的同名函数(虚函数),同名+同参1. 作用域不同(子类和父类)2. 参数相同3. 函数名相同4. 基类中的函数必须有virtual关键字 以上部分摘自 《C/C++原创 2009-12-11 01:01:00 · 570 阅读 · 0 评论 -
C++中const详解
一、对于C++中的const修饰的内部类型(build-in type)变量,除了以下几种情况,编译器是不会为其创建存储空间 a. 取一个const的地址 b. 把一个const作为一个带引用(指针)的参数传递给一个函数 c. 把它定义为extern 而当编译器不为其创建存储空间的时候,const是作为编译时常量来保存在编译器的符号表中(symboltable)的,在编译期间原创 2009-12-09 23:20:00 · 730 阅读 · 0 评论 -
'fd_set' redefinition winsock2.h,相关头文件条件编译处理
今天写一个TCP/IP的小程序的时候,偶然间发现一个错误工程类型:Win32 Console Application 错误如下:--------------------Configuration: TcpSer - Win32 Debug--------------------Compiling...main.cppd:/program files/microsoft visual原创 2009-10-29 20:49:00 · 2477 阅读 · 0 评论 -
避免重复的对象构建 ——Reference Counting(引用计数)技术
因为今天突然看到一篇帖子在讨论C++的赋值构造,也就是 operator = 的重载, 里面说到了一个“自赋值”的问题,以前自己也看过Thinking In C++中有介绍到这个问题,于是又翻起书来,重温了一遍,发现,里面介绍到了一个很重要的技术,也就是标题所说的,Reference Counting(引用计数)的技术 那么,什么是“引用计数”呢?它又有什么用呢?在我们构建对象的时候,原创 2009-10-27 20:58:00 · 998 阅读 · 0 评论 -
什么是对象切片(Object Slicing)?
关于对象切片Thinking in C++中有这么一段话英文原版:If you upcast to an object instead of a pointer or reference, something will happen that may surprise you: the object is “sliced” until all that remains is the sub原创 2009-10-19 22:14:00 · 4600 阅读 · 1 评论 -
C++什么时候进行迟绑定?
上一篇帖子详细讨论了迟绑定的原理,那么,什么时候编译器会进行迟绑定呢?或者编译器根据什么来决定要不要进行迟绑定呢?C++编程思想说: It’s important to realize that upcasting deals only with addresses. If the compiler has an object, it knows the exact type and ther原创 2009-10-19 16:19:00 · 840 阅读 · 0 评论 -
C++ 多态(迟绑定)真正原理
今天看到一篇帖子关于虚函数的问题,原以为自己已经对c++虚函数,多态了解的不错了,但是,还是发现有一些模糊点,所以,又回头重新总结了一番。 有了不小的收获,下面,就和大家一起来分享一下,也希望对一些朋友起到一定的帮助。首先先梳理一下概念,以前似乎对概念不是很重视,其实不然,真正对一个东西的定义了解了很透,才能去深入挖掘这个东西的内涵。 好,首先,什么是绑定?( what`s t原创 2009-10-19 14:43:00 · 2936 阅读 · 3 评论 -
C++中New存在的意义
最近研究C++的new,发现,存在真是必有其道理的。Thinking IN C++中说:若C++中没有引入new来动态分配空间的话,一个对象的初始化,必须要这样实现//: C13:MallocClass.cpp// Malloc with class objects// What youd have to do if not for "new"#include // mall原创 2009-10-19 00:46:00 · 1298 阅读 · 0 评论 -
C++中引用的使用规则
<br />1. A reference must be initialized when it is created. (Pointers can be initialized at any time.)<br />2. Once a reference is initialized to an object, it cannot be changed to refer to another object. (Pointers can be pointed to another object at any原创 2011-03-26 10:42:00 · 672 阅读 · 0 评论