摘要:
设置默认形参增加函数的弹性函数1:void display(const vector<int> &ivec){for(int ix=0;ix!=ivec.size();++ix)cout<<ivec[ix]<<" ";}分析:此函数非常霸道的将输出绑定到cout对象上,只能输出到屏幕上;改进:通过给函数添加ostream参数,可选择输出到屏幕上还是文件中,设置其默认值为cout,表明默认输出至屏幕上;void display(const vector<int> &ivec,ostream &os=cou 阅读全文
摘要:
动态内存管理1.堆内存(heap memory):程序自由空间,此种内存必须由程序员自行管理,其配置有new表达式达成,释放有delete表达式完成;2.配置heap内存的方式: int *pi=new int(1024); int *pia=new int[24]; 注: C++中没有提供任何语法让我们得以从heap配置数组的同时为其元素设定初值;3.heap配置而来的对象,皆是未经过初始化的;4.heap配置而来的对象执行期通过new配置而来,直到以delete表达式加以释放为止(heap 配置对象的生存期);5.delete 释放heap配置的内存时,无需检验pi是否为零,编译器会自动为 阅读全文
摘要:
参数以引用参数传递和以指针形式传递效果相同;差异是:指针可能不指向某一实际对象,当我们提领指针时,一定要先确定其值并非为0;而引用必定会代表某个确定的对象,所以不须做此检查;故综合比较指针参数和引用参数 引用参数的更有优势,因为引用参数不需要检查,而使用指针参数时需要检查是否指向某一确定的对象;总结:1.将参数声明为引用的理由之一是,希望直接对所传入的对象进行修改2.将参数声明为引用的理由之二是,降低复制大型对象的负担3.传址方式主要应用于类类型之上,当传递内建类型时,不要使用传址方式 阅读全文
摘要:
文件的读写操作1.开启一个可供输出的文件 ofstream outfile("filename"); 如果指定的文件存在,这个文件会被开启为输出之用,而文件中原已存在的数 据会被丢失; 如果指定的文件不存在,便会有一个文件被产生出来并开启为输出之用; 如果文件已经存在,并且我们不希望丢弃原有内容,而是希望增加新数据到文 件中,那么我们以追加模式(append mode)开启这个文件,提供第二个参数 ios_base::app ofstream outfile("filename",ios_base::app); 文件开启有可能失败,在进行写入操作之前,我 阅读全文