2021/01/14 C++程序设计学习
来源:网易云课堂 面向对象程序设计-C++——翁恺
课时1——第一个C++程序
Cygwin
- 编辑器:
-PS Pad:www.papad.com
-Joe:终端中的简单编辑器
-Notepad:将程序保存为“所有文件” - 源文件可能是.cpp·
- 命令行编译器:
-g++<源名称>
- 生成a.out或a.exe
-g++<源名称> -o<输出名称
输入输出符号
cout<< //输出
cin>> //输入
文本替换->refactor->Rename
读取输入
#include <iostream>
using namespace std;
int main() {
int number;
cout << "Enter a decimal number: ";
cin >> number;
cout << "The number you entered is " << number <<"." << endl;
return 0;
}
课时2——什么是对象
什么是对象?
- 对象 = 实体
- 对象可以是
-可见的或
-不可见的 - 对象在编程语言中是可变的。
属性 = 对象 + 服务
- 数据:属性或状态
- 操作:函数
描述/绘制
- 从问题空间到解决空间
程序性语言
- C不支持关系btw数据和函数
typedef struct point3d {
float x;
float y;
float z;
} Point3d;
void Point3d_print(const Point3d* pd);
Point3d a;
a.x = 1; a.y = 2; a.z=3;
Point3d_print(&a);
C++ version
class Point3d {
public:
Point3d(float x,float y,float z);
print();
private:
float x;
float y;
float z;
} ;
Point3d a(1,2,3);
a.print();
C vs. C++
什么是面向对象
- 一种组织
- 设计
- 实现
- 对象的方法,而不是控制或数据流,是设计和实现的主要重点
- 专注于事情,而不是业务
课时3——面向对象基本原理
面向对象编程
- 对象发送和接收消息(对象做事情! )
对象发送消息
- 消息是
- 由发送者组成
- 由接收方解释
- 由方法论实现
- 消息
- 可能导致接受方更改状态
- 可能返回结果
对象与类
- 对象(cat)
- 表示事物、事件或概念
- 在运行时响应消息
- 类(cat class)
- 定义实例的属性
- 类似于C中的类型
OOP特性
- 一切都是对象
- 程序是一堆通过发送消息告诉对方该怎么做的对象
- 每个对象都有自己的内存由其他对象组成
- 每个对象都有一个类型
- 特定类型的所有对象都可以接收相同的消息
对象有一个接口
- 接口是它接收消息的方式
- 它是在对象所属的类中定义的
函数的接口
- 通信
- 保护
隐藏实现
- 对象的内部部分,表示其状态的数据成员以及消息隐藏时所采取的操作
- class creators VS Client programmers
-客户程序员-Keep客户程序员的手,他们不应该触摸的部分
-允许类创建者改变类的内部工作,而不必担心它将如何影响客户端程序员
封装
- 捆绑数据和方法一起处理这些数据在一个对象
- 隐藏数据的细节和操作
- 只限制对已公布的方法的访问
课时4 自动售票机例子
- 命名规范:类的名字每个单词第一个字母大写。
::resolver(解析符)
<Class Name>::<function name> 代表某一个类中的某一个函数。
::<function name> 代表全局的一个函数
课时5 头文件
declared in a header file;
defined in a function file;
头文件include,是编译预处理。把include包含的文件与cpp中的文件结合在一起,合成一个大的文件。
#include“” 是在当前目录找头文件
#include<>是在系统目录找头文件;
而头文件中标准的
#ifndef
#endif
格式是为了避免同一个.cpp文件重复载入一个.h多次
xx.h–>declaration
xx.c–>definition
一般一个.c对应一个.h(同名)
还有main.h做为主函数入口