1、C+复习第一章 绪论面向对象的概念:类,对象,封装,继承,多态第二章 C+语法1常量和变量。2标识符3算术运算、关系运算、逻辑运算、赋值运算、逗号运算、条件运算。4运算符的优先级、左结合和右结合规则。5. 控制结构:循环,选择第三章 函数1. C+中函数的定义、调用以及主调函数和被调函数之间的数据传递规则。2函数的返回值和类型。3内联函数的概念和应用。4函数重载的概念和使用场合第四章 类与对象1. 类与对象的概念和定义方法,类成员的访问属性。2构造函数、定义方法和使用方法。3析构函数的概念、定义方法和使用方法。4拷贝构造函数的概念、定义方法和使用方法。5包含对象成员的类构造函数的定义方法。6静
2、态成员的概念、定义方法、作用和特点。7. 友元的概念、定义方法、作用和特点。第六章 指针,数组1.指针、地址、指针类型、空指针(NULL)等概念;2掌握指针变量的定义和初始化、指针的间接访问、指针的加减运算、指针变量比较运算和指针表达式;3动态空间操作(new,delete);4掌握引用参数的使用第七章 继承1. 继承和派生的定义,派生类的定义方法。(1)继承的两种类型:单继承和多继承。(2)private,public,protected三种继承方式的特点。(3)派生类中的构造函数和析构函数的使用。(4)派生类的同名覆盖规则。(5)赋值兼容规则。基类对象可以使用公有派生类对象来代替,包括:派
3、生类对象可以赋值给基类对象;派生类对象可以初始化基类对象的引用;基类类型指针可以指向派生类对象。2多重继承、定义方法、多重继承派生类构造函数的执行顺序。3 掌握虚基类的概念和定义方法。第八章 多态1多态性2多态从实现的角度来讲可以划分为两类:编译时的多态和运行时的多态。3运算符重载4虚函数5纯虚函数 6抽象类 复习题:11、如果s是int型变量,且s=8,则下面s%2+(s+1)%2表达式的值为 。 12、x为int类型,指出下列表达式值的类型,x200: 。13、执行以下程序段后,输出结果值为 。 int max ( int a , int b = 10 ) return a b ? a :
4、 b ; int max ( int a , int b, int c ) int t ; t = max ( a , b ) ; return max ( t , c ) ; void main () cout max (4,5,6) endl ; 14、利用“对象名.成员变量”形式访问的对象成员仅限于被声明为public的成员;若要访问其他成员变量,需要通过 。 19、设有基类定义: class Cbase private: int a; protected: int b; public: int c; ;Cbase的派生类采用何种继承方式可以使成员变量c成为自己的私有成员 。11、设所有
5、变量均为整型,则表达式(e=20,f=50,e+,f+,e+f)的值为_ _。 16、内联函数在定义或说明时前面要加上关键字 。 21、运行结果:21、#include int add(int x,int y=10);void main( ) int a=15; coutadd(a)endl; coutadd(a,add(a)endl; int add(int x,int y) return x+y; 22、22、运行结果:#include”iostream.h”f(int a) int b=10; static int c=6; b+;c+; return(a+b+c);void main(
6、 ) int a=8,i; for(i =0; i 3; i +) coutf(a)endl;23、运行结果为:23、#include #include int count=0;class Point int x,y; public: Point() x=1;y=1; count+; Point() count-; friend void display();;void display() cout There are count points,endl;void main() Point a; display(); Point b10; display(); display();24、#in
7、clude 24、运行结果:class point int x,y;public: point(int a,int b) x=a;y=b;cout构造.endl; point(point &p); friend point move(point q); point()cout 析构n; int getx() return x; int gety() return y;point:point(point &p) x=p.x; y=p.y; cout拷贝构造n;point move(point q) coutOKn; int i,j; i=q.x+10; j=q.y+20; point r(i,j
8、); return r;void main() point m(15,40),p(0,0); point n(m); p=move(n); coutp=p.getx(),p.gety()endl;21、运行结果:21、#include void fun( );int n=15;void main( ) int n=50; coutnendl; fun();void fun( ) coutnendl; 22、#include 22、运行结果:void fun( );void main( ) int i; for(i=0;i2;i+) fun();void fun( ) static int m=
9、0; coutm+endl;23、运行结果:23、#include#includeclass Pointpublic: Point(int a=0, int b=0) x=a; y=b; int xcord() return x; int ycord () return y; private: int x,y; friend double Distance(Point p1,Point p2);double Distance(Point p1,Point p2) double dx=double(p1.x-p2.x); double dy=double(p1.y-p2.y); return s
10、qrt(dx*dx+dy*dy);void main() Point q1(0,0),q2(30,40); cout”The distance is: ”Distance(q1,q2)endl;25、#include class A25、运行结果:public: A() coutA构造.endl; virtual A() coutA析构endl; virtual void f() coutAs f().endl; void g() f(); ;class B : public Apublic: B() f(); coutB构造endl; B() coutB析构endl; ;class C :
11、public Bpublic: C() coutC构造endl; C() coutC析构endl; void f() coutCs f().g(); delete a;改错误。#include using namespace std;class test private:int x,y=20; public: test (int i=0,int j)x=i,y=j; int getx()return x; int gety()return y; class testderived: public test public: testderived (int i,int j) x=i;y=j; ;
12、void main() testderived mt(10,20); coutmt.getx()endl; coutmt.gety()endl; return 0; 27、#include class testpublic:void test( )couttest 构造函数n;fun(); virtual void fun( )=0 couttest:fun( ) 函数n;virtual test(int i)couttest 析构函数n ;class testderived: test public:testderived( ) couttestderived构造函数n;fun();void
13、 fun( ) couttestderived:fun( ) 函数n; void main()test *p = new testderived(10); 编程题:1、(1) 定义一个类A,有保护成员:x;公有成员:print();(2) 定义一个派生类B,是A类的公有派生类。B类本身的私有属性有:y。B的公有函数有:init(),print();(3)画出整体UML类图。2、定义一个抽象类A,其中有2个纯虚成员函数,a1( ),a2( )。在此基础上派生出类B和类C,实现虚函数a1( )和a2( )。给出三个类的定义。3、重载运算符+ +,- -附加题:#include class Loca
14、tion public: Location( int xx = 0 , int yy = 0 ) X = xx ; Y = yy ; cout Constructor Object.n ; Location( const Location & p ) /复制构造函数 X = p.X ; Y = p.Y ; cout Copy_constructor called. endl ; Location() cout X , Y Object destroyed. endl ; int GetX () return X ; int GetY () return Y ; private : int X
15、, Y ; ;void f ( Location p ) cout Funtion: p.GetX() , p.GetY() endl ; void main() Location A ( 1, 2 ) ; f ( A ) ; 结果:constructor object.Copy_constructor called.Funtion:1,21,2 Object destroyed.1,2 Object destroyed.#include class Location public : Location ( int xx = 0, int yy = 0 ) X = xx ; Y = yy ;
16、cout Object constructed. endl ; Location ( const Location & p ) X = p.X ; Y = p.Y ; cout Copy_constructor called. endl ; Location() cout X , Y Object destroyed. endl ; int GetX() return X ; int GetY() return Y ; private : int X, Y ; ;Void main()Location a; Location b(a); Location c;结果:Object constru
17、cted.Copy_constructor called.Object constructed.Object destroyed.Object destroyed.Object destroyed.#includeclass counter static int num ; public : void setnum ( int i ) num = i ; void shownum() cout num t ; ;int counter : num = 0 ; void main () counter a , b ; a.shownum() ; b.shownum() ; a.setnum(10
18、) ; a.shownum() ; b.shownum() ;结果:0 0 10 10#includeclass A friend class B ; public : void Display() cout x endl ; ; private : int x ; ;class B public : void Set ( int i ) Aobject . x = i ; void Display () Aobject . Display () ; private : A Aobject ; ;void main() B Bobject ; Bobject . Set ( 100 ) ; B
19、object . Display () ;结果:100class xpublic: void f1(); void f2(); void print() coutm=mendl; private: int m;void x:f1() m=5;void x:f2() m=2; void main() x obj; obj.f1(); obj.print(); obj.f2(); obj.print();结果:m=5m=2int i=10;void main() int i=5; if( i 10) int i; i=7; couti=iendl; couti=iendl; cout:i=:ien
20、dl;结果:i=7i=5:i=10#includeusing namespace std;void fun() static int a=1; int i=5; a+; i+; couti=i,a=aendl;int main() fun(); fun();结果:i=6, a=2i=6, a=3对象数组:class Point public: Point(); Point(int xx,int yy); Point(); void Move(int x,int y); int GetX() return X; int GetY() return Y; private: int X,Y;Poin
21、t:Point() X=Y=0; coutDefault Constructor called.endl;Point:Point(int xx,int yy) X=xx; Y=yy; cout Constructor called.endl;Point :Point() coutDestructor called.Move(15,20); /通过指针访问数组元素的成员 coutDeleting.endl; delete Ptr; /删除整个对象数组 return 0;结果:Default Constructor called.Default Constructor called.Deletin
22、g.Destructor called.Destructor called.class Point public: Point(); Point(); private: int X,Y;Point:Point() X=Y=0; coutDefault Constructor called.endl;Point :Point() coutDestructor called.endl; int main() Point *Ptr = new Point2; coutDeleting.endl; delete Ptr; 结果:Default Constructor called.Default Co
23、nstructor called.Deleting.Destructor called.Destructor called.#includeclass A public: int a1, a2 ; A( int i1=0, int i2=0 ) a1 = i1; a2 = i2; void print() cout a1= a1 t a2= a2 endl ; ;class B : public A public: int b1, b2 ; B( int j1=1, int j2=1 ) b1 = j1; b2 = j2; void print() /定义同名函数 cout b1= b1 t
24、b2= b2 endl ; void printAB() A:print() ; /派生类对象调用基类版本同名成员函数 print() ; /派生类对象调用自身的成员函数 ;void main() B b ; b.A:print(); b.printAB(); 结果:a1=0 a2=0a1=0 a2=0a1=1 a2=2#includeclass B public: static void Add() i+ ; static int i; void out() coutstatic i=iendl; ;int B:i=0;class D : private B public: void f(); i=5; Add(); B:i+; B:Add(); ;void main() B x; D y; x.Add(); x.out(); y.f(); coutstatic i=B:iendl; coutstatic i=x.iendl; /coutstatic i=y.iendl;结果:static i=1static i=1static i=8#include class Base public : Base ( ) cout Base created.n ;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1