C++面向对象(1)

来源:互联网 发布:凭都网软件 编辑:程序博客网 时间:2024/06/04 20:15

一、描述面向对象技术的基本概念

面向对象是指按人们认识客观世界的系统思维方式,采用基于对象(实体)的概念建立模型,模拟客观世界分析、设计、实现软件的方法,包括类、对象、消息以及类的特性等方面的内容。
类(class):具有相似的内部状态和运动规律的实体集合。类来自于人们认识自然、认识社会的过程。在这一过程中,人们主要使用两种方法:有特殊到一般的归纳法和一般到特殊的演绎法。在归纳过程中,从一个一个具体的事物中把共同的特征抽取出来,形成一个一般的概念。在演绎的过程中又把同类的事物,根据不同的特征分成不同的小类。
对象(object):指现实世界中各种各样的实体,也就是类(class)的实例。它既可以指具体的事物,也可以指抽象的事物。每个对象都有自己的内部状态和运动规律。在面向对象概念中,把对象的内部状态成为属性,运动规律称为方法或事件。
消息(message):指对象之间相互联系和相互作用的方式。一个消息主要由5个部分组成:发送消息的对象、接收消息的对象、消息传递办法、消息内容(参数)、反馈。
类的特性:抽象、继承、封装、重载和多态。


二、判断题——类的基本概念

Which is incorrect about the class?(对于类,下面哪一个问题是不正确的?)
A、A class is a blueprint to object.
B、We use the keyword class to create a class construct.
C、Once a class is declared, the class name become a type name and can be used to declare variables.
D、The class is sname as the struct,and there are no defference between class and struct.
答案:D
解析:
A、一个类是对象的设计蓝图,正确。因为对象时类的实例,只有类设计好了,对象才可以被创建。
B、使用class关键字创建一个类的结构,正确。
C、一个类一旦被声明了,这个类名就成为一个类型名并可以使用它来声明变量,正确。
D、class与struct类似,它们之间没有任何区别,错误。


三、选择题——c++与C语言相比的改进

c++是从早期的C语言发展而来,与C语言相比,它在求解问题的方法上进行的最大的改进是什么?
A、面向过程
B、面向对象
C、安全性
D、复用性

答案:B
c++是从C语言发展而来,C语言是过程式编程语言,它以过程为中心、以算法为驱动。而c++能够使用面向对象的编程方式,即使用以对象为中心、以消息为驱动的编程方式。这是c++在C语言上的最大改进。


四、class和struct有什么区别?  

这里有两种情况下的区别:
(1)C语言的struct与c++的class区别。
(2)c++中的struct与class的区别。
第一种:C语言的struct只是作为一种复杂数据类型的定义,不能用于面向对象编程。
第二种:c++中的struct和class的区别在于对于成员访问权限以及继承方式,class默认的是private的,而struct中则是public的。class还可以用于表示模板类型,struct不行。


五、改错——c++类对象的声明

[plain] view plain copy
  1. #include <iostream>  
  2.   
  3. using namespace std;  
  4.   
  5. struct Test  
  6. {  
  7.     Test(int) {}  
  8.     Test() {}  
  9.     void fun() {}  
  10. };  
  11.   
  12. int main()  
  13. {  
  14.     Test a(1);  
  15.     a.fun();  
  16.     Test b();  
  17.     b.fun();  
  18. }  
题中的Test有两个构造函数,其中一个带参数,一个不带参数,在调用不带参数的构造函数时不需要加括号,因此16行错误,应去掉括号。