B站av11459203的一系列视频,跳过了基础篇直接进入进阶,从此难度开始加大。这里做出一些笔记分享一下。

我是1.25速度看的。。对应分P 34-36

对象:现实中对象的模拟,具有属性和行为,对象是类的实例

类:同一类对象共同属性和行为

定义对象时,通过构造函数初始化

删除对象时,通过析构函数释放资源

面向对象程序设计特点

抽象:

对同一类对象的共同属性和行为进行概括,形成类

首先注意问题的本质及描述,其次是实现过程和细节

数据抽象:描述某类对象的属性或状态

代码(方法)抽象:描述对象的共有特征或具有的功能

抽象的实现:类

抽象实例 钟表
数据抽象
int hour,minute,second 代码(方法)抽象
setTime(),showTime()
class Clock{
public:
void setTime(int newH,int newM,int newS);
void showTime();
private:
int hour,minute,second;
};

封装

将抽象出的数据,代码封装在一起,形成类

目的:增强安全性和简化编程,使用者不必了解具体的实现细节而只要通过外部接口,以特定的访问权限,来使用类的成员

继承

在已有类的基础上,进行扩展形成新的类

多态

同一名称,不同的功能实现方式

目的:达到行为标识统一,减少程序中标识符的个数

设计类应该想到什么....

类型的合法值是什么?

有什么样的函数和操作符

对象如何创建和销毁,如何进行初始化和赋值?

对象作为函数的参数如何以值传递?

谁来使用类的对象成员?

类定义的语法形式

 public:
void setTime(int newH,int newM,int newS);
void showTime();
private:
int hour=,minute=,second=;//成为类内初始值

公有成员

是类与外部的接口,任何外部函数都可以访问。

私有成员

只允许本类的函数访问,而类外部的任何函数不能访问

在类名称开头声明则默认为private(可以不写)

保护成员

不在这里介绍

对象定义语法 类名 对象名;

从类外访问成员使用“对象名.成员名”方式访问public成员

类的成员函数

在类中声明函数原型

可以在类外给出函数体的实现,并在函数名前使用类名加以限定

也可以在类中给出函数体,形成内联成员函数(见下图)

允许声明重载函数和带默认参数值的函数

我在B站学习 清华大学教授带你学习c++(进阶)类与对象的更多相关文章

  1. 我在B站学习 清华大学教授带你学习c++(进阶)构造函数

    B站av11459203的一系列视频,跳过了基础篇直接进入进阶,从此难度开始加大.这里做出一些笔记分享一下. 我是1.25速度看的..对应分P 37-38 构造函数的作用 将对象初始化为一个特定的初始 ...

  2. Scala学习之路 (六)Scala的类、对象、继承、特质

    一.类 1.类的定义 scala语言中没有static成员存在,但是scala允许以某种方式去使用static成员这个就是伴生机制,所谓伴生,就是在语言层面上,把static成员和非static成员用 ...

  3. scala快速学习笔记(二):控制结构,类和对象

    IV.控制结构 1.if/else 除基本用法外,if/else语句能用来赋值,进而代替?:运算符.这得益于在Scala中,每个语句块都有值,就是该语句块最后一个语句的值.请看下面的代码. def a ...

  4. 第三周学习java第四章学习总结及体会!

    第三周java 2第四章的学习总结: 一.主要内容(类与对象): 1.类: 2.构造方法与对象的创建: 3.类与程序的基本结构: 4.参数传值: 5.对象的组合: 6.实例成员与类成员: 7.方法重载 ...

  5. 使用.net(C#)发送邮件学习手册(带成功案例)

    使用.net(C#)发送邮件学习手册(带成功案例) 1.了解发送邮件的三种方式 2.实例介绍使用client.DeliveryMethod = System.Net.Mail.SmtpDelivery ...

  6. 程序员带你学习安卓开发-XML文档的创建与解析

    这是程序员带你学习安卓开发系列教程.本文章致力于面向对象程序员可以快速学习开发安卓技术. 上篇文章:程序员带你学习安卓开发系列-Android文件存储 因知识连贯性推荐关注头条号:做全栈攻城狮.从头开 ...

  7. 程序员带你学习安卓开发系列-Android文件存储

    这是程序员带你学习安卓开发系列教程.本文章致力于面向对象程序员可以快速学习开发安卓技术. 上篇文章:.Net程序员快速学习安卓开发-布局和点击事件的写法 主要讲解了布局和点击事件的写法. 上篇文章补充 ...

  8. 程序员带你学习安卓开发,十天快速入-对比C#学习java语法

    关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 如果你真想学习,请评论学过的每篇文章,记录学习的痕迹. 请把所有教程文章中所提及的代码,最少敲写三遍,达到 ...

  9. 小白的java学习之路 “ 带参数的方法”

    一.带参数的方法: 1.1 语法: <访问修饰符> 返回类型 <方法名>(<形式参数列表>) { //方法的主体 } 1.2 案例: 榨汁机 public clas ...

随机推荐

  1. SPOJ8093Sevenk Love Oimaster(广义后缀自动机)

    Oimaster and sevenk love each other.     But recently,sevenk heard that a girl named ChuYuXun was da ...

  2. BZOJ2563阿狸和桃子的游戏

    2563: 阿狸和桃子的游戏 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 952  Solved: 682[Submit][Status][Discu ...

  3. 【转】 Pro Android学习笔记(五九):Preferences(3):EditText和Ringtone Preference

    目录(?)[-] EditText Preferences xml文件 设备的存贮文件 Ringtone Preferences EditText Preferences xml文件 在res/xml ...

  4. Python知识点: os.popen

    用例:f = os.popen("%s %s %s" % ("pkg-config", " ".join(args), mod)) pope ...

  5. ES6学习之Class

    一.定义类(ES6的类,完全可以看做是构造函数的另一种写法) class Greet { constructor(x, y) { this.x = x; this.y = y; } sayHello( ...

  6. asp弹出层

    asp弹出层 <style type="text/css"> html, body { height: %; width: %; } .white_content { ...

  7. 问题:oracle ROW_NUMBER()over;结果: ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法

    ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法 ROW_NUMBER() OVER(partition by col1 order by col2) 表示根据col1分组, ...

  8. HTML input 标签不可编辑的 readonly 属性

    1 <form action="form_action.asp" method="get"> Name:<input type="t ...

  9. docker启动

    启动容器 启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(stopped)的容器重新启动. 因为 Docker 的容器实在太轻量级了,很多时候用户都是随时删除和新创建容器 ...

  10. Learning Python 007 基本语句

    Python 基本语句 if - 条件判断 没有什么好说的,直接上代码: age = 3 if age >= 18: print('adult') elif age >= 6: print ...