C++文件流
    
            
摘要:流,简单来说就是建立在面向对象基础上的一种抽象的处理数据的工具。在流中,定义了一些处理数据的基本操作,如读取数据,写入数据等,程序员是对流进行所有操作的,而不用关心流的另一头数据的真正流向。流不但可以处理文件,还可以处理动态内存、网络数据等多种数据形式。如果你对流的操作非常熟练,在程序中利用流的方便性,写起程序会大大提高效率的。目录一、打开文件 二、关闭文件 三、读写文件 四、检测EOF 五、文件定位 在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符: 1、插入器(<<) 向流输出数据。比如
        
阅读全文
                posted @ 
2011-05-18 22:21 
COS
        
阅读(748) 
         
        推荐(1)     
             
            
            
    关于类的数据成员的访问权限设计的一些思考(转)
    
            
摘要:在C++的类的数据成员的访问权限分为三种:public、protect和private。private表示自己本类私有,不允许其它类的直接访问;protected表示自己及子孙可以访问,其它族类不允许直接访问,我们可以把它比作是本家族的共同财富;public表示向全社会都公开的,任何类都可以直接访问的。 一般而言,出于对数据成员封装性的考虑,我们往往把数据成员设置为protect和private的访问权限。但是最近我发现,将一些类的数据成员设为public的访问权限也是有必要的。那么在什么时候将一些类的数据成员设为public的访问权限呢? 我们知道在C++的代码重用中有两种形式:一种是通过类
        
阅读全文
                posted @ 
2011-05-16 23:23 
COS
        
阅读(416) 
         
        推荐(1)     
             
            
            
    C++核心思想(第三版) 读后感
    
            
摘要:最近一直在读C++核心思想这本书,以前看都是别的C++书籍,比较起来,这本书讲解的要好很多,不单是内容完整,各个知识点也讲的很好,完全做到了引导学生学习的效果。书里面的举例也非常恰当,自我感觉看了这本书之后获益良多。下面是摘自C++核心思想书中的内容:章节目录:第1章 简介 第2章 基本数据类型 第3章 对象 第4章 基本控制流程 第5章 函数 第6章 类 第7章 高级控制流 第8章 测试和调试第9章 向量和数组 第10章 指针 第11章 继承 第12章 流 第13章 面向对象设计 第14章 递归 第15章排序和查找 第16章 数据结构介绍第17章 C++高级主题 第18章 图形用户界面开发.
        
阅读全文
                posted @ 
2011-05-14 23:43 
COS
        
阅读(506) 
         
        推荐(1)     
             
            
            
    ORACLE PROC 常用知识
    
            
摘要:Proc也就是嵌入式C,与informix的ESQ/C有类似之处,本部分主要列出Proc与Esql的区别,相同部分请参见informix部分。 1.数组功能Proc中支持使用宿主变量数组一次查询SELECT/插入INSERT多条记录。在某些情况下非常有用,但不具有移植性。 2.sqlca通讯区结构structsqlca{/*ub1*/charsqlcaid[8];/*b4*/longsqlabc;/*b4*/longsqlcode;struct{/*ub2*/unsignedshortsqlerrml;/*ub1*/charsqlerrmc[70];}sqlerrm;/*ub1*/charsq
        
阅读全文
                posted @ 
2011-05-11 10:57 
COS
        
阅读(2343) 
         
        推荐(2)     
             
            
            
    Visual Studio 2010中C++的四大变化(转)
    
            
摘要:在微软即将发布的Visual Studio 2010正式版中,其对C++语言做了一些修改,本文对此做了小结,与大家分享。 Lambda表达式 很多编程编程语言都支持匿名函数(anonymous function)。所谓匿名函数,就是这个函数只有函数体,而没有函数名。Lambda表达式就是实现匿名函数的一种编程技巧,它为编写匿名函数提供了 简明的函数式的句法。同样是Visual Studio中的开发语言,Visual Basic和Visual C#早就实现了对Lambda表达式的支持,终于Visual C++这次也不甘落后,在Visual Studio 2010中添加了对Lambda表达式的支持
        
阅读全文
                posted @ 
2011-05-10 00:25 
COS
        
阅读(745) 
         
        推荐(1)     
             
            
            
    关于拷贝构造函数和赋值运算符
    
            
摘要:转自:http://tieba.baidu.com/f?kz=727217617(1)为什么要使用拷贝构造函数? 当你把一个对象用值传递的方式传参的话,会产生一个副本,或者把一个对象return传出的时候也会产生副本。如果你没有定义一个拷贝构造函数的时候,副本是原对象的一个浅拷贝,又假如你的对象是一个包含指针的类对象,发生浅拷贝的时候只是将指针对应的复制,并没有开辟空间。1、值传递传参,函数内部对象的改变将导致外部的改变,因为副本和原对象的指针指向同一块内存。2、返回一个对象时,在函数作用域中的变量已经失效,其传出来的结果就可想而知了。这样就会出现很多问题的。(2)拷贝构造函数的概念 拷贝构造
        
阅读全文
                posted @ 
2011-05-10 00:02 
COS
        
阅读(804) 
         
        推荐(3)     
             
            
            
    #pragma
    
            
摘要:在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。一般格式 其格式一般为: #Pragma Para。其中Para 为参数,下面来看一些常用的参数 常用参数 message 参数 Message 参数能够在编译信息输出窗口中输出相应的信息,这对于源代码信息的控制是非常重要的。其使用方法为: #Pragma message(“消息文本”) 当
        
阅读全文
                posted @ 
2011-05-09 18:13 
COS
        
阅读(440) 
         
        推荐(2)     
             
            
            
    __cdecl
    
            
摘要:几种函数调用方式 __cdecl 是C DECLaration的缩写(declaration,声明),表示C语言默认的函数调用方法:所有参数从右到左依次入栈,这些参数由调用者清除,称为手动清栈。被调用函数不会要求调用者传递多少参数,调用者传递过多或者过少的参数,甚至完全不同的参数都不会产生编译阶段的错误。 _stdcall 是StandardCall的缩写,是C++的标准调用方式:所有参数从右到左依次入栈,如果是调用类成员的话,最后一个入栈的是this指针。这些堆栈中的参数由被调用的函数在返回后清除,使用的指令是 retnX,X表示参数占用的字节数,CPU在ret之后自动弹出X个字节的堆栈空间
        
阅读全文
                posted @ 
2011-05-09 18:03 
COS
        
阅读(579) 
         
        推荐(1)     
             
            
            
    c++中的delete和delete[]
    
            
摘要:c++中的delete和delete[] 昨天写了一篇关于delete和delete[]的文章,有位仁兄指出我的结论是错误的,那样的结果只会在特定的编译器程序。为了不会误导大家,文章意见删除。回家后仔细看了《Effective C++》,是我看书太不仔细了,虽然忘了那位仁兄是谁了,在这里还是谢谢你。现将《Effective C++》中正确的观点、结论摘录如下: 1. 当你使用new时,有两件事会发生。第一,内存被配置(透过函数operator new)。第二,会有一个(或以上)的constructors针对此内存被调用。当你使用delete时,也有两件事发生:一个(或以上)的destructo
        
阅读全文
                posted @ 
2011-05-08 16:06 
COS
        
阅读(1061) 
         
        推荐(2)     
             
            
            
    stl string常用函数
    
            
摘要:string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常 string类的字符操作:const char &operator[](int n)const;const char &at(int n)const;char &operator[](int n)
        
阅读全文
                posted @ 
2011-05-08 14:24 
COS
        
阅读(382) 
         
        推荐(1)     
             
            
            
    #ifdef __cplusplus 倒底是什么意思?
    
            
摘要:时常在cpp的代码之中看到这样的代码:#ifdef__cplusplusextern"C"{#endif//一段代码#ifdef__cplusplus}#endif 这样的代码到底是什么意思呢?首先,__cplusplus是cpp中的自定义宏,那么定义了这个宏的话表示这是一段cpp的代码,也就是说,上面的代码的含义是:如果这是一段cpp的代码,那么加入extern "C"{和}处理其中的代码。 要明白为何使用extern "C",还得从cpp中对函数的重载处理开始说起。在c++中,为了支持重载机制,在编译生成的汇编码中,要对函数的名字
        
阅读全文
                posted @ 
2011-05-08 14:12 
COS
        
阅读(650) 
         
        推荐(1)     
             
            
            
    小小递归函数的执行过程
    
            
摘要:下面程序的功能是用递归法将一个整数存入到一个字符数组中。存放时按逆顺序存放。如483存放成384程序本身并不难,把它拿出来也就是帮助理解递归的实现过程。#include"stdio.h"voidconvert(char*a,intn){inti;if((i=n/10)!=0)convert(a+1,i);//或者更改为convert((a++,a--),i);*a=n%10+'0';printf("%c\n",*a);}voidmain(){intnumber;charstr[10]="";scanf("%d
        
阅读全文
                posted @ 
2011-05-07 16:03 
COS
        
阅读(1148) 
         
        推荐(2)     
             
            
            
    Pro *C/C++学习笔记(一)
    
            
摘要:上周六无事,抽空学习了一下Pro *C/C++,使用的参考书是《精通Oracle 10gPro*C/C++编程》。个人感觉Pro *C/C++语法不难,就是环境设置有点麻烦。编程就是这样,开头是一个坎,编译环境设置不好,看不到输出结果,就难以获得那种成就感。下面我以一个简单例子来说明Pro *C/C++的编译环境的设置。这次开发环境是:Win XP sp2,VC++6.0,OCI: version 9.2, Oracle DataBase 10g Enterprise Edition Release 10.1.0.2.0。 书上说Oracle为Windows平台提供了Pro *C/C++图形界
        
阅读全文
                posted @ 
2011-05-04 12:27 
COS
        
阅读(1791) 
         
        推荐(1)     
             
            
            
    【C/C++ string】之strcpy函数
    
            
摘要:题目: 已知strcpy函数的原型是: char * strcpy(char * strDest,const char * strSrc); 1.不调用库函数,实现strcpy函数。 2.解释为什么要返回char *。 解说: 1.strcpy的实现代码 char * strcpy(char * strDest,const char * strSrc) { if ((strDest==NULL)||(strSrc==NULL)) //[1] throw "Invalid argument(s)"; //[2] char * strDestCopy=strDest;//[3]
        
阅读全文
                posted @ 
2011-04-28 10:50 
COS
        
阅读(1050) 
         
        推荐(2)     
             
            
            
    _finddata_t 的使用(转)
    
            
摘要:那么到底如何查找文件呢?我们需要一个结构体和几个大家可能不太熟悉的函数。这些函数和结构体在<io.h>的头文件中,结构体为struct _finddata_t ,函数为_findfirst、_findnext和_fineclose。具体如何使用,我会慢慢讲来~ 首先讲这个结构体吧~ struct _finddata_t ,这个结构体是用来存储文件各种信息的。说实话,这个结构体的具体定义代码,我没有找到,不过还好,文档里面在_find里有比较详细的成员变量介绍。我基本上就把文档翻译过来讲吧: unsigned atrrib:文件属性的存储位置。它存储一个unsigned单元,用于表示
        
阅读全文
                posted @ 
2011-04-23 20:06 
COS
        
阅读(1992) 
         
        推荐(0)     
             
            
            
    C++的static关键字(转)
    
            
摘要:C++的static关键字 C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。一、面向过程设计中的static1、静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下: //Example 1#include <iostream.h>void fn();static int n; //定义静态全局变量void main(){	n=20;	cout<<n<<endl;	
        
阅读全文
                posted @ 
2011-04-23 18:51 
COS
        
阅读(370) 
         
        推荐(0)     
             
            
            
    C++ 类中的静态变量和静态成员函数(转)
    
            
摘要:静态数据成员:下面看一个例子:#include <iostream.h>class Point{public:void output(){}static void init(){ } };void main( void ){Point pt;pt.init();pt.output(); }这样编译是不会有任何错误的。下面这样看#include <iostream.h>class Point{public:void output(){ }static void init(){ } };void main( void ){Point::output();}这样编译会处错,错
        
阅读全文
                posted @ 
2011-04-23 18:43 
COS
        
阅读(644) 
         
        推荐(0)     
             
            
            
    C/C++ assert函数用法(转)
    
            
摘要:assert 函数名:assert 功能:测试一个条件并可能使程序终止 用法:voidassert(inttest); 程序例: #include<assert.h> #include<stdio.h> #include<stdlib.h> structITEM{ intkey; intvalue; }; /*additemtolist,makesurelistisnotnull*/ voidadditem(structITEM*itemptr){ assert(itemptr!=NULL); /*additemtolist*/ } intmain(void
        
阅读全文
                posted @ 
2011-04-23 17:05 
COS
        
阅读(3308) 
         
        推荐(1)     
             
            
            
    【指针与数组区别】ch[]与*ch (转载)
    
            
摘要:【指针与数组区别】ch[]与*ch??RT,这两个有的时候可以替换。但是存字符串时却不完全相同。char ch1[]="我爱你";char *ch2="我爱你";cout<<sizeof(ch1)<<endl;//结果7cout<<sizeof(ch2)<<endl;//结果4我知道第二个是首地址,但第一个是什么,不懂啊,不是首地址吗?----------------如鹏站内搜索“指针 数组 区别”http://so.rupeng.com/?keyword=%E6%8C%87%E9%92%88+%E6%95
        
阅读全文
                posted @ 
2011-04-15 23:02 
COS
        
阅读(524) 
         
        推荐(2)