1、14) 每一个文件都有两个指针,一个是读指针,说明输入操作在文件中当前位置;另一个是写指针,说明写操作在文件中的当前位置。每次执行输入或输出操作时,相应的读写指针将自动后移。15)一个类有多个直接基类的继承关系称为多继承16)多个基类的派生类构造函数用初始化列表调用基类构造函数,执行顺序与单继承构造函数情况类似。17)多个直接基类构造函数执行顺序取决于定义派生类时指定的各个继承基类的顺序。按基类在被继承时所声明的次序从左到右依次调用。18)当派生类从多个基类派生,而这些基类又从同一个基类派生,则在访问此共同基类中的成员时,将产生二义性采用虚基类来解决。19)虚基类声明:以virtual修饰说明
2、基类 例:class B1:virtual public B20)虚基类对象是由最直接派生类的构造函数通过调用虚基类的构造函数进行初始化的。21)异常处理可以增加系统的鲁棒性22)关键字try:出错时产生异常的代码放在try块中23)关键字throw:throw语句可以抛出任意类型的异常,包括自定义类型24)关键字catch:catch块(异常处理器)捕捉和处理异常25)catch()能匹配成功所有的数据类型的异常对象,包括C+语言提 供所有的原生数据类型的异常对象26)可以在函数的声明中列出这个函数可能抛掷的所有异常类型。例如:void fun( ) throw(A,B,C,D);27)堆对
3、象:通过new运算符动态产生的对象28)所谓模板是一种使用无类型参数来产生一系列函数或类的机制。29)模板通过参数实例化可以构建具体的函数或类,称为模板函数和模板类。30)如同函数模板一样,类模板是参数化的类,即用于实现数据类型参数化的类。31)容器:可容纳各种数据类型的数据结构。32)迭代器:可依次存取容器中元素的东西33)算法:用来操作容器中的元素的函数模板。例如,STL用sort()来对一个vector中的数据进行排序,用find()来搜索一个list中的对象。34)容器分为三大类:1) 顺序容器 vector:后部插入/删除,直接访问deque:前/后部插入/删除,直接访问list:双
4、向链表,任意位置插入/删除2)关联容器 set:快速查找,无重复元素multiset :快速查找,可有重复元素map:一对一映射,无重复元素,基于关键字查找multimap :一对一映射,可有重复元素,基于关键字查找前2者合称为第一类容器 3)容器适配器 stack:LIFOqueue:FIFOpriority_queue:优先级高的元素先出 2.程序阅读题1)#includeusing namespace std;class ClxTest public: ClxTest();ClxTest(); void Output() const; int GetOutputTimes() const
5、;private: mutable int m_iTimes;ClxTest:ClxTest() m_iTimes = 0;ClxTest()void ClxTest:Output() const cout Output for test! endl; m_iTimes+;int ClxTest:GetOutputTimes() const return m_iTimes;void OutputTest(const ClxTest& lx) cout lx.GetOutputTimes() lx.Output(); void main() ClxTest ts1; OutputTest(ts1
6、);2)#include #include int main() string strinfo= /*-Hello Word!.-; string strset=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz int first = strinfo.find_first_of(strset); if(first = string:npos) coutnot find any charactersendl; return -1; int last = strinfo.find_last_of(strset); if(last = stri
7、ng: strinfo.substr(first, last - first + 1) return 0;3)#include void string_replace(string & strBig, const string & strsrc, const string &strdst) string:size_type pos=0;size_type srclen=strsrc.size();size_type dstlen=strdst.size(); while( (pos=strBig.find(strsrc, pos) != string:npos) strBig.replace(
8、pos, srclen, strdst); pos += dstlen;int main() This is Winter, Winter is a programmer. Do you know Winter? coutOrign string is:endlstrinfo string_replace(strinfo, Winter, wende);After replace Winter with wende, the string is :4)#includevoid fn ( int a , int b ) if ( b = 0 ) cerr Zero encountered. Th
9、e message connot be redirected.n ; else a / b endl ;void main ( ) fn ( 20 , 2 ) ;fn ( 20 , 0 ) ;5)#include using namespace std ;void main() const int k = 618 ; setw(10) setfill(#) setiosflags(ios:right) k endl ; setbase(8) *) resetiosflags(ios:left) 6)#include double x = 22.0/7 ; int i ;output in fi
10、xed :n cout.setf( ios:fixed | ios:showpos ) ; / 定点输出,显示 + for( i=1; i=5; i+ ) cout.precision( i ) ; x output in scientific : / 清除原有设置,科学示数法输出 cout.setf(ios:scientific, ios:fixed|ios: cout.precision(i) ; x*1e5 7)#include#include string testStr ( Input test 256 * 0.5 ) ; string s1, s2, s3 ; double x,
11、y ; istringstream input( testStr ) ; input s1 s2 x s3 y ; s1 ends s2 s3 y = x*y 8)#include ofstream ost ; ost . open ( c:my1.dat ) ; ost 20 30.5 n d ; n endl d 9)#include void main () fstream f( d:DATA.dat , ios:in | ios:out | ios:binary ) ; for( i = 0; i 20 ; i + ) f.write(char *)&i, sizeof(int) )
12、; long pos = f.tellp() ; for( i = 20;40 ; i + ) f.write( (char*)& f.seekg(pos) ; f.read(char*)&The data stored is f.seekp( 0, ios:beg ) ; i + ) f.read( (char*)&iends;10)#include class Base1 public: Base1(int x) value = x ; int getData() const return value ; protected: int value;class Base2 Base2(cha
13、r c) letter=c; char getData() const return letter; char letter;class Derived : public Base1, public Base2 public : Derived ( int val, char let, double re):Base1(val), Base2(let) real = re;value,letterreal double getReal() const return real; private : double real ; Base1 b1 ( 10 ) ; Base2 b2 ( k Deri
14、ved d ( 5, A, 2.5 ) ;11)#include class B1 /声明基类B1public: /外部接口 int nV; void fun( )coutMember of B1class B2 /声明基类B2Member of B2class D1: public B1, public B2 /同名数据成员Member of D1 /同名函数成员void main( ) D1 d1; d1.nV=1; /对象名.成员名标识, 访问D1类成员 d1.fun( ); d1.B1:nV=2; /作用域分辨符标识, 访问基类B1成员fun( ); d1.B2:nV=3; /作用域分
15、辨符标识, 访问基类B2成员12)#include try在 try block 中, 准备抛出一个异常. /这里抛出一个异常(其中异常对象的数据类型是char*) char* p=0; throw p; /catch( char* value ) /注意这里catch语句 catch(.)在 catch() block 中, char*类型的异常对象也被处理 13)#includeGetSum() delete pa;14)#include int main() std:vector v1; v2; v1.push_back (5); v1.push_back (1); v2.push_ba
16、ck (1); v2.push_back (2); v2.push_back (3);cout (v1 v2);15)#include vector v; /一个存放int元素的向量,一开始里面没有元素 v.push_back(1); v.push_back(2); v.push_back(3); v.push_back(4);const_iterator i; /常量迭代器 for( i = v.begin();i != v.end();i + ) cout * i reverse_iterator r; /反向迭代器 for( r = v.rbegin();r != v.rend();r+
17、 ) * r templatevoid sort(T a, T b, T c) T array3,temp; int i,j; array0 = a; array1 = b; array2 = c; for(i=0;3;i+) for(j=0;jarrayj+1) temp = arrayj;arrayj = arrayj+1; arrayj+1 = temp; array0 array1 array2 sort(5,1,9);2、用get函数从键盘输入字符 char c;Enter first sentence followed by Entern while ( (c = cin.get() != n ) cout.put(c);Enter second sentence followed by Entern while ( cin.get(c) ) if ( c= ) break; cout.put(c);Enter third sentence followed by Entern char s 80 ; cin.get ( s, 10 ) ; s x ;Input y : Output * = cou
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1