
C++
qingen123
生命不息 奋斗不止 LINUX爱好者 世界因你的敲打而改变
展开
-
C++类静态成员的初始化
记住:通常静态数据成员在类声明中声明,在包含类方法的文件中初始化.初始化时使用作用域操作符来指出静态成员所属的类.但如果静态成员是整型或是枚举型const,则可以在类声明中初始化!!!#include using namespace std;class test{public:static int num;};int test::num = 0;void main(){co原创 2013-10-06 11:35:17 · 1263 阅读 · 0 评论 -
rand srand用法 C++
计算机的随机数都是由伪随机数,即是由小M多项式序列生成的,其中产生每个小序列都有一个初始值,即随机种子。(注意: 小M多项式序列的周期是65535,即每次利用一个随机种子生成的随机数的周期是65535,当你取得65535个随机数后它们又重复出现了。) 我们知道rand()函数可以用来产生随机数,但是这不是真正意义上的随机数,是一个伪随机数,是根据一个数(我们可以称它为种子)为基准转载 2014-09-28 08:50:26 · 803 阅读 · 0 评论 -
iostream fstream ostream 用法
在看C++编程思想中,每个练习基本都是使用ofstream,ifstream,fstream,以前粗略知道其用法和含义,在看了几位大牛的博文后,进行整理和总结:这里主要是讨论fstream的内容:[java] view plaincopyprint?#include ofstream //文件写转载 2014-09-13 15:52:18 · 4716 阅读 · 0 评论 -
strcpy,strcmp,strcat,memcpy,memmov,memset,memcmp的实现
// [11/10/2013 qingezha] 直接拷贝,不考虑覆盖问题,效率优先char* strcpy_my(char * dest,char * src) // 实现src到dest的复制{ if(!src||!dest) return NULL; char* stedest = dest; //保存目标字符串的首地址 while ((*dest++ = *src++原创 2013-11-10 18:54:34 · 1308 阅读 · 0 评论 -
C++类对象的内存模型
内存模型描述的是程序中各变量(实例域、静态域和数组元素)之间的关系,以及在实际计算机系统中将变量存储到内存和从内存取出变量这样的低层细节.不同平台间的处理器架构将直接影响内存模型的结构.首先介绍一下C++中有继承关系的类对象内存的布局:在C++中,如果类中有虚函数,那么它就会有一个虚函数表的指针__vfptr,在类对象最开始的内存数据中。之后是类中的成员变量的内存数据。对于原创 2013-11-09 20:28:31 · 1157 阅读 · 0 评论 -
C++中四种类型转换方式
类型转换有c风格的,当然还有c++风格的。c风格的转换的格式很简单(TYPE)EXPRESSION,但是c风格的类型转换有不少的缺点,有的时候用c风格的转换是不合适的,因为它可以在任意类型之间转换,比如你可以把一个指向const对象的指针转换成指向非const对象的指针,把一个指向基类对象的指针转换成指向一个派生类对象的指针,这两种转换之间的差别是巨大的,但是传统的c语言风格的类型转换没有区分这些原创 2013-11-03 14:09:44 · 1412 阅读 · 0 评论 -
C++只在堆上与栈上创建对象
只能在堆上,那么栈上的自动析构函数必须是private,这样可以保证不能在栈上创建对象,一旦创建了,没法析构,在堆上,我们可以加上一个public函数,来销毁堆上的对象;代码如下:// [11/3/2013 qingezha] 只能在堆上建对象class A{public: A() { cout<<"a is construct"<<endl; } void des原创 2013-11-03 15:28:06 · 1264 阅读 · 0 评论 -
用C++实现一个不能被继承的类
不能被继承?按照继承的理论知识分析,我们只要把类的构造函数设置为私有的,即可解决问题。因为那样的话,子类就没有办法访问基类的构造函数,从而就阻止了进行子类构造对象的任务实现,也就达到了不可继承的目的。定义静态方法,在方法内部实现一个对象,然后返回它的指针。这样就可以通过类访问静态方法返回对象指针,这样我们再设计一个析构函数就可以了,这样大功告成了原创 2013-10-26 23:14:57 · 834 阅读 · 0 评论 -
C++ new/delete 重载
首先,new和delete是运算符,重载new和delete是可能的。这样做的原因是,有时希望使用某种特殊的动态内存分配方法。例如,可能有些分配子程序,他们的堆已耗尽,自动开始把一个磁盘文件当虚存储使用,或者用户希望控制某一片存储空间的分配等。重载new和delete的格式如下:void *operator new (size_t size){ .......//完成分配工作原创 2013-10-25 20:08:48 · 2698 阅读 · 1 评论 -
C++友元函数(类)用法
1,friend 申明一个友元friend 一般为一句申明式,它位于一个类的内部,它申明一个类或者一个函数为该类的友元。friend 并不是定义一个成员函数,所以 friend 放在 public,protected 或者 private 前都可以,完全是一样的。做为一个友元,即表示在该类或者该函数内部可以访问这个类的私有成员(通过接口传过来的类,以及函数体里面的类,都可以像成员函数一样访问私原创 2013-10-25 20:31:53 · 1119 阅读 · 0 评论 -
基于哈夫曼编码的文件压缩解压
这个程序是研一上学期的课程大作业。当时,跨专业的我只有一点 C 语言和数据结构基础,为此,我查阅了不少资料,再加上自己的思考和分析,实现后不断调试、测试和完善,耗时一周左右,在 2012/11/19 完成。虽然这是一个很小的程序,但却是我完成的第一个程序。源码托管在 Github:点此打开链接以下为完整的作业报告:一、问题描述:名称:基于哈夫曼编码的文件压缩解压转载 2016-05-31 14:51:40 · 9769 阅读 · 5 评论