0、概述
1、结构化的程序设计、面向对象的程序设计的基本思想。
结构化的程序设计将数据和对数据的操作分离,程序是由一个个的函数组成的,面向对象的程序设计将数据和操作封装在一起,程序是由一个个对象组成的,对象之间通过接口进行通信,它能够较好地支持程序代码的复用。 2、面向对象的程序设计有四大特征,它们是封装性、继承性、多态性、抽象性。 面向过程的程序设计中程序模型描述为 (1) ,面向对象程序设计的程序模型可描述为 (2) 。 答案:
(1)“程序=算法+数据结构”。其数据与数据处理是分离的。 (2)程序=对象+对象+……+对象;对象=(算法+数据结构)。 简单解释什么是面向对象程序设计的封装性。
答:对象是一个封装体,在其中封装了该对象所具有的属性和操作。对象作为独立的基本单元,实现了将数据和数据处理相结合的思想。此外,封装特性还体现在可以限制对象中数据和操作的访问权限,从而将属性“隐藏”在对象内部,对外只呈现一定的外部特性和功能。
封装性增加了对象的独立性,C++通过建立数据类型——类,来支持封装和数据隐藏。一个定义完好的类一旦建立,就可看成完全的封装体,作为一个整体单元使用,用户不需要知道这个类是如何工作的,而只需要知道如何使用就行。
另一方面,封装增加了数据的可靠性,保护类中的数据不被类以外的程序随意使用。这两个优点十分有利于程序的调试和维护 一、类 要求:
◇ 掌握类定义、类成员的访问权限;能够根据给定的要求定义类,并实现类的成员函数;
◇ this指针:当一个成员函数被调用时,该成员函数的 this指针指向调用它的对象。例如: return *this;
◇ 常成员函数的定义与使用、内联成员函数的定义、成员函数的重载、默认参数的形式;
常成员函数的定义格式:类型说明符 函数名(参数表)const{} 注:
? 常成员函数不能修改所捆绑对象的数据成员,也不能调用非const函数。 ? 常量对象只能调用常成员函数;反之,常成员函数不一定非用常量对象
来调用;但构造函数和析构函数对这个规则例外,它们从不定义为常成员函数,但可被常量对象调用(被自动调用)。如: #include
R(int r1,int r2) {R1=r1;R2=r2;}
void print(){cout< void print() const{ cout<<\ private: }; void main(){ } ◇ 静态数据成员和静态成员函数的定义和使用; 注: 静态数据成员是类的所有对象中共享的成员 静态成员函数只能直接访问类中的静态成员,若要访问类中的非静态成员时,必须借助对象名、引用或指向对象的指针。 ① int R1,R2; R a(5,4); a.print(); const R b(20,52); //b是常量对象 b.print(); #include CSample(){ i=0; k++;} void Display(){cout<<\}; int CSample::k=0; void main(){ CSample a,b; a.Display(); b.Display(); } 答: i=0,k=2 i=0,k=2 ② #include int A; static int B; public: Sample(int a){A=a; B+=a;} static void print(Sample s); }; void Sample::print(Sample s)