本文是“北京大学—程序设计实习[C++]”公开课的听课笔记,配套教材是任课老师自己编写的《新标准C++程序设计教程》,博主是入门菜鸟,故整理并记录在博客里,方便后续查看。
文章目录
浅谈面向对象程序设计方法
结构化程序设计存在的问题
结构化程序设计:复杂的大问题->层层分解/模块化->若干子问题
自顶向下,逐步求精
程序=数据结构+算法
存在的问题:理解难,修改难,查错难,重用难;
面向对象的程序设计
面向对象的程序=类+类+…+类
面向对象的程序设计方法:
类的定义
class 类名
{
访问范围说明符:
成员变量1
成员变量2
……
成员函数声明1
成员函数声明2
……
访问范围说明符:
更多成员变量
更多成员函数声明
……
}
面向对象程序设计语言的发展历程
2011年,提出了c++11标准
从客观事物抽象出类的例子
例:写一个程序,输入矩形的宽和高,输出面积和周长。
- 矩形的属性:宽和高
- 两个变量,分别代表宽和高
- 对矩形的操作:
- 设置宽和高
- 计算面积
- 计算周长
客观事物->类
矩形类:成员变量+成员函数(可以理解成一个带函数的结构体)
#include <stdio.h>
#include <iostream>
using namespace std;
class CRectangle {
public:
int w, h;
void Init(int w_, int h_) {
w = w_; h = h_;
}
int Area() {
return w * h;
}
int Perimeter() {
return 2 * (w + h);
}
};//必须有分号
int main() {
int w, h;
CRectangle r;//r是一个对象
cin >> w >> h;
r.Init(w, h);
cout << "the area is " << r.Area() << endl << "the perimeter is " << r.Perimeter();
return 0;
}
类定义的变量–类的实例–“对象”
对象的内存分配
对象的内存空间
- 对象的大小 = 所有成员变量的大小之和
- E.g. CRectangle 类的对象,sizeof(Crectangle) = 8,成员变量是两个int类型的,一个int型占4个字节。
每个对象各有自己的存储空间,一个对象的某个成员变量被改变,不会影响到其他的对象。
对象间的运算
对象之间可以用“=”进行赋值
不能用“&#