摘要: 在C/C++中,我们平时写程序可能经常会用到typedef关键字和#define宏定义命令,在某些情况下使用它们会达到相同的效果,但是它们是有实质性的区别,一个是C/C++的关键字,一个是C/C++的宏定义命令,typedef用来为一个已有的数据类型起一个别名,而#define是用来定义一个宏定义常量。下面谈谈两者在实际使用中应当注意的地方。 1.typedef关键字 typedef是用来声明类型别名的,在实际编写代码过程使用typedef往往是为了增加代码的可读性。它可以为一串很长的类型名起一个别名,那么使用这个别名可以达到与原类型名相同的效果。 如:typedef int INT;type 阅读全文
posted @ 2012-07-17 23:30 瑞尼书苑 阅读(422) 评论(1) 推荐(0)
摘要: 在面向对象的C++语言中,虚函数(virtualfunction)是一个非常重要的概念。因为它充分体现 了面向对象思想中的继承和多态性这两大特性,在C++语言里应用极广。比如在微软的MFC类库中,你会发现很多函数都有virtual关键字,也就是说, 它们都是虚函数。难怪有人甚至称虚函数是C++语言的精髓。那么,什么是虚函数呢,我们先来看看微软的解释:虚函数是指一个类中你希望重载的成员函数,当你用一个基类指针或引用指向一个继承类对象的时候,你调用一个虚函数,实际调用的是继承类的版本。 ... 阅读全文
posted @ 2012-07-17 17:45 瑞尼书苑 阅读(203) 评论(0) 推荐(0)
摘要: ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间;在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:1、插入器(<<) 向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout<<"Write Stdout"<<'\n';就表示把字符串"Write Stdout"和换行字符('\n')输出到标准输出流。2、析取 阅读全文
posted @ 2012-07-17 17:37 瑞尼书苑 阅读(178) 评论(0) 推荐(0)
摘要: strcpy和memcpy都是标准C库函数,它们有下面的特点。strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。已知strcpy函数的原型是:char* strcpy(char* dest, const char* src);memcpy提供了一般内存的复制。即memcpy对于需要复制的内容没有限制,因此用途更广。void*memcpy(void*dest,constvoid*src,size_tcount);?char* strcpy(char* dest, constchar* src) // 实现src到dest的复制{ 阅读全文
posted @ 2012-07-17 17:21 瑞尼书苑 阅读(198) 评论(0) 推荐(0)
摘要: //log.h//hujinshan@2004.1.3 Airforce Engineering University/*//CLog* CLog::_instance = NULL;CLog::GetObj().Write( "*******初始化完成*******" );CLog::GetObj().tmWrite( "*******开始渲染No1. *******" );CLog::GetObj();在Clog文件中有#define CLog /##/的语句,这是为了使日志在release版无效,使用单行注释,所以如果调用时如果要换行,请务必在换行 阅读全文
posted @ 2012-07-17 16:31 瑞尼书苑 阅读(410) 评论(0) 推荐(0)
摘要: 0 前言准C++线程即将到来。CUJ预言它将衍生自Boost线程库,现在就由Bill带领我们探索一下Boost线程库。就在几年前,用多线程执行程序还是一件非比寻常的事。然而今天互联网应用服务程序普遍使用多线程来提高与多客户链接时的效率;为了达到最大的吞吐量,事务服务器在单独的线程上运行服务程序;GUI应用程序将那些费时,复杂的处理以线程的形式单独运行,以此来保证用户界面能够及时响应用户的操作。这样使用多线程的例子还有很多。>但是C++标准并没有涉及到多线程,这让程序员们开始怀疑是否可能写出多线程的C++程序。尽管不可能写出符合标准的多线程程序,但是程序员们还是会使用支持多线程的操作系统提 阅读全文
posted @ 2012-07-17 14:26 瑞尼书苑 阅读(311) 评论(0) 推荐(0)