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中加
①
②前向声明 class B;
注意:使用前向声明时,在A类中不能使用B的对象实体即前向声明的类不能实例化,只能使用B类指针或引用 。
6. 嵌套类(内部类)
嵌套类隐藏在外围类中,要使用内部类要加上外围类的限定。
Example:
Test外围类,Inner 内部类(int x 内部类公有成员)
要访问x:
Test t;
Test::Inner i;
t.i.x = 5;
内部类无权访问外围类的成员
嵌套类仅仅是语法上的嵌入,嵌套类的成员函数可以在类外实现。
7. 局部类
局部类定义在函数体内,局部类的成员函数必须在类体中实现,且局部类中不能出现静态成员。
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. 局部类
局部类定义在函数体内,局部类的成员函数必须在类体中实现,且局部类中不能出现静态成员。
相关文章推荐
- 《面向对象基础:C++实现》学习笔记之一
- 《面向对象基础:C++实现》学习笔记之四
- 如何学习C++(面向对象和windows编程第一节课讲稿)
- C++之面向对象学习笔记01
- java和c++在面向对象上有什么区别?
- C++面向对象学习1
- Object Pascal与C++面向对象特征的对比
- [关于面向对象]C++写的代码
- C++语法细微(三)(面向对象和类)
- 《面向对象基础:C++实现》学习笔记之五
- 面向对象程序设计--C++/Java
- C++面向对象特性实现机制的初步分析 Part1
- c++改写李维面向对象实践指南
- C++面向对象特性实现机制的初步分析 Part2
- 《面向对象基础:C++实现》学习笔记之三
- java和c++在面向对象上有什么区别?
- C++面向对象复习(四)——指针在面向对象中的应用
- 《面向对象基础:C++实现》学习笔记之七
- C++面向对象复习(一)——构造函数
- [C++] - 面向对象-院校管理系统