我在B站学习 清华大学教授带你学习c++(进阶)类与对象
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++(进阶)类与对象的更多相关文章
- 我在B站学习 清华大学教授带你学习c++(进阶)构造函数
B站av11459203的一系列视频,跳过了基础篇直接进入进阶,从此难度开始加大.这里做出一些笔记分享一下. 我是1.25速度看的..对应分P 37-38 构造函数的作用 将对象初始化为一个特定的初始 ...
- Scala学习之路 (六)Scala的类、对象、继承、特质
一.类 1.类的定义 scala语言中没有static成员存在,但是scala允许以某种方式去使用static成员这个就是伴生机制,所谓伴生,就是在语言层面上,把static成员和非static成员用 ...
- scala快速学习笔记(二):控制结构,类和对象
IV.控制结构 1.if/else 除基本用法外,if/else语句能用来赋值,进而代替?:运算符.这得益于在Scala中,每个语句块都有值,就是该语句块最后一个语句的值.请看下面的代码. def a ...
- 第三周学习java第四章学习总结及体会!
第三周java 2第四章的学习总结: 一.主要内容(类与对象): 1.类: 2.构造方法与对象的创建: 3.类与程序的基本结构: 4.参数传值: 5.对象的组合: 6.实例成员与类成员: 7.方法重载 ...
- 使用.net(C#)发送邮件学习手册(带成功案例)
使用.net(C#)发送邮件学习手册(带成功案例) 1.了解发送邮件的三种方式 2.实例介绍使用client.DeliveryMethod = System.Net.Mail.SmtpDelivery ...
- 程序员带你学习安卓开发-XML文档的创建与解析
这是程序员带你学习安卓开发系列教程.本文章致力于面向对象程序员可以快速学习开发安卓技术. 上篇文章:程序员带你学习安卓开发系列-Android文件存储 因知识连贯性推荐关注头条号:做全栈攻城狮.从头开 ...
- 程序员带你学习安卓开发系列-Android文件存储
这是程序员带你学习安卓开发系列教程.本文章致力于面向对象程序员可以快速学习开发安卓技术. 上篇文章:.Net程序员快速学习安卓开发-布局和点击事件的写法 主要讲解了布局和点击事件的写法. 上篇文章补充 ...
- 程序员带你学习安卓开发,十天快速入-对比C#学习java语法
关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 如果你真想学习,请评论学过的每篇文章,记录学习的痕迹. 请把所有教程文章中所提及的代码,最少敲写三遍,达到 ...
- 小白的java学习之路 “ 带参数的方法”
一.带参数的方法: 1.1 语法: <访问修饰符> 返回类型 <方法名>(<形式参数列表>) { //方法的主体 } 1.2 案例: 榨汁机 public clas ...
随机推荐
- [CERC 2008] Suffix reconstruction
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=4319 [算法] 首先 , 我们可以求出这个字符串的rank数组 按照SA逐位枚举 , ...
- 【C/C++】scanf,printf 函数
摘自http://www.cplusplus.com 1. scanf 函数 int scanf ( const char * format, ... ); Parameters format C s ...
- 汇编题目:在屏幕中间显示a-z的所有字母,按ESC键改变字符颜色
在屏幕中显示a-z字母,按ESC键改变字符颜色. ;程序功能:在屏幕中间同一点显示a-z的所有字符 ; 1.使用cpu循环空运行实现延迟 ; 2.按ESC键改变正在循环显示的字符的颜色 ; 3.程序完 ...
- dcos的问题汇总
. group 'docker' does not exist 需要手工创建docker组,这一步本来应该是在安装docker的时候来完成的,但是采用yum install的方式不行,需要添加一个do ...
- HDOJ2043(JAVAset容器练习)
import java.io.PrintWriter; import java.util.HashSet; import java.util.Scanner; public class Main { ...
- Python:struct模块的pack、unpack
mport struct pack.unpack.pack_into.unpack_from 1 # ref: http://blog.csdn<a href="http://lib. ...
- netty中的Channel、ChannelPipeline
一.Channel与ChannelPipeline关系 每一个新创建的 Channel 都将会被分配一个新的 ChannelPipeline.这项关联是永久性 的:Channel 既不能附加另外一个 ...
- Java常见设计模式之观察者模式
在阎宏博士的<JAVA与模式>一书中开头是这样描述观察者(Observer)模式的: 观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式.模型-视图(Mo ...
- Oracle数据库安全性设计
一.什么是安全的系统 安全性建设是一个长期并且卓绝的工作.作为一个符合标准的企业级系统,我们认为税务系统应该具备以下的安全性特点: ◆高可用性 ◆对敏感数据的访问控制能力. ◆监测用户行为的审计能力. ...
- webStorage
1.HTML5中的本地存储概念是什么? 很多时候我们会存储用户本地信息到电脑上,例如:比方说用户有一个填充了一半的长表格,然后突然网络连接断开了,这样用户希望你能存储这些信息到本地,当网络恢复的时候, ...