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

C++(1)面向对象和类

2017-02-09 11:10 232 查看
一、 面向对象编程介绍

1. 什么是面向对象?

面向将系统看成通过交互作用来完成特定功能的对象的集合。每个对象用自己的方法管理数据。也就是说只有对象内部的代码能操作对象内部的数据。

2. 面向对象的优点

活字印刷书即面向对象思想

通过,继承、封装、多态降低程序的耦合度,并结合设计模式让程序更容易复用和修改,并且易于扩展。

面向过程的缺点:不容易维护,灵活性差,不容易扩展,更谈不上复用,由于客户的需求多变,导致程序员加班加点,甚至整个项目经常返工。

3. 面向对象的特点

① 抽象—-作用是提高代码的灵活性

② 封装—-作用是提高代码的维护性

③ 继承—-作用是提高代码的复用性

④ 多态—-作用是提高代码的扩展性

二、 面向对象编程介绍

1. 类的声明

类是用户的自定义类型

格式:

class 类名

{

public:

公有成员(外部接口)

protected:

保护成员

private:

私有成员

};

2. 成员函数

在类内实现的成员函数(方法)都默认为内联函数。

在类外实现成员函数

Example:

void Test::init(int x,int y,int z){…}

3. class VS struct

class中默认成员为私有,类可以继承,类中可以加限定符。

struct中默认成员为公有,结构体不可以继承,结构体中可以加限定符。

4. 对象的存储模型

对象的大小与成员函数(方法)无关,只与属性有关,且遵循字对齐

每个对象的成员属性具有独立的空间,共享成员方法的空间。

调用成员方法时,通过this指针辨别是哪一个对象调用的。

this指针自动传参,作用是保存调用方法的对象的地址。在调用方法时自动生成,调用完自动释放,对象本身不含有this指针。

5. 类的作用域

要想在A类中使用B类有两种方法:在A.h中加

#include <B.h>


②前向声明 class B;

注意:使用前向声明时,在A类中不能使用B的对象实体即前向声明的类不能实例化,只能使用B类指针或引用 。

6. 嵌套类(内部类)

嵌套类隐藏在外围类中,要使用内部类要加上外围类的限定。

Example:

Test外围类,Inner 内部类(int x 内部类公有成员)

要访问x:

Test t;

Test::Inner i;

t.i.x = 5;

内部类无权访问外围类的成员

嵌套类仅仅是语法上的嵌入,嵌套类的成员函数可以在类外实现。

7. 局部类

局部类定义在函数体内,局部类的成员函数必须在类体中实现,且局部类中不能出现静态成员。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  面向对象编程