您的位置:首页 > 编程语言

对《写给大家看的面向对象编程书》的一点收获

2013-09-17 22:04 162 查看
最近读了matt weisfeld写的《写个大家看的面向对象编程书》,这本书主要讲了面向对象的一些主要的思想。侧重于向读者解释面向对象中的一些概念和思想。

我对面向对象的一些认识:面向对象主要是来自与人类世界自己的一种思考方式,当我们考虑一个事物时,一般是将事物作为一个对象进行思考。其中对象有自己的一些属性,同时也有自己的一些行为。这体现在面向对象中主要有,多态性,虚函数,继承,组合,隐藏,接口和实现等等

以下将对这其中的重要的一些观点进行介绍

多态性:指对于同一个消息,不同的对象对于此消息会有不同的结果,即多种形态的意思。如画出一些图形,对于同一个draw方法,在circle,star,square中的实现方法各不相同,对于这个图形消息,会得到不同的图像。、

继承:它是面向对象中最重要的一个结果。即表现为子类继承超类(父类)的属性和方法,是一种is-a的关系,这样在构建一个新的对象时,会带来极大的方便性。如狗和猫都是哺乳动物,可以建立一个哺乳动物的超类,这样在建立狗对象和猫对象时就会带来很大的方便性。

组合:一个对象包含其他对象,是has-a的关系。如汽车包含了轮胎、发动机等等。它和继承还是有很大的区别的

虚类:包含虚函数的类,是不能被实例化的

虚函数:不能提供实现的函数,可以再继承中实现。是实现多态的基础。

类中的三种属性:public,protect,private,其中的private实现了隐藏,即只有自己的类和子类才能访问它,其他的类没有访问的权限。

一般来说,最好的设计就是竟可能的隐藏细节,提供竟可能少的接口。

如上图中的继承关系和一些虚函数的一些关系,是VS2010中的类的视图。

shape类的声明

#pragma once

#include <iostream>

class shape

{

public:

shape(void);

~shape(void);

virtual void draw();

};

circle的定义

#include "StdAfx.h"

#include "circle.h"

#include "shape.h"

circle::circle(void)

{

}

circle::~circle(void)

{

}

void circle::draw()

{

std::cout<<"i am drawing circle"<<std::endl;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: