c++学习笔记(入门)
1 struct和class的区别
struct成员变量(成员函数)的访问属性缺省的情况下默认为public。
class成员变量(成员函数)的访问属性缺省的情况下默认为private。
2 初始化列表
class通过构造函数有两种初始化方式:
(1)在构造函数中通过赋值进行初始化
(2)用初始化列表初始化
两种初始化差异:构造函数中通过赋值初始化并不是构造函数初始化的时候完成的,要晚于构造函数的初始化。而初始化列表是是在初始化构造函数的时候初始化的,尤其是在初始化对象的时候,采用初始化列表的方式初始化,不然会有不必要的麻烦。所以建议都使用初始化列表进行初始化
Example
(a)在构造函数中用赋值进行初始化时报错
1 class Tom
2 {
3 public:
4 Tom(int i)
5 {
6 }
7 ~Tom()
8 {
9 }
10 };
11
12 class Cat
13 {
14 private:
15 string type;
16 string name;
17 int age;
18 Tom tom;
19 public:
20 Cat()
21 {
22 type = "";
23 name = "";
24 age = 0;
25 tom = 0;
26 }
27 ~Cat()
28 {
29 }
30 };
报错内容: error: no matching function for call to 'Tom::Tom()'

(b) 用初始化列表初始化问题得到解决
1 class Tom
2 {
3 public:
4 Tom(int i)
5 {
6 }
7 ~Tom()
8 {
9 }
10 };
11
12 class Cat
13 {
14 private:
15 string type;
16 string name;
17 int age;
18 Tom tom;
19 public:
20 Cat():tom(0), type(""), name(""), age(0)
21 {
22 }
23 ~Cat()
24 {
25 }
26 };
3 组合、继承
3.1 组合
组合玩的是类的对象(实的),也就是把另一个类的对象作为他的成员变量
Example
1 /* 组合 */
2 class Huluwa
3 {
4 private:
5 string name;
6 string ability;
7 public:
8 Huluwa(int i):name(""), ability("")
9 {
10
11 }
12 ~Huluwa()
13 {
14 }
15 };
16
17 class Dawa
18 {
19 private:
20 Huluwa huluwa;
21 public:
22 Dawa(int i):huluwa(0)
23 {
24 }
25 ~Dawa()
26 {
27 }
28 };
3.2 继承
继承玩的是类(虚的),把父类的成员继承过来
Example
1 /* 继承 */
2 class Huluwa
3 {
4 private:
5 string name;
6 string ability;
7 public:
8 Huluwa(int i):name(""), ability("")
9 {
10 }
11 ~Huluwa()
12 {
13 }
14
15 void SetName(string name_)
16 {
17 name = name_;
18 }
19 };
20
21 class Dawa : public Huluwa
22 {
23 public:
24 Dawa(int i):Huluwa(0)
25 {
26 }
27 ~Dawa()
28 {
29 }
30 };
继承的访问权限
public 子类可以直接访问、修改父类的所有public限制的成员变量和方法
private 子类拥有父类的所有的变量,但不能直接修改和访问,只能通过public接口访问
protected 对于子类跟public的权限一样,但对于其对象,权限与private一样
参考资料
感谢B站 up主【编程不止Coding】整理的视频 --> 面向对象设计C++-- 浙江大学 -- 翁恺 --国家精品课程(附源代码)
c++学习笔记(入门)的更多相关文章
- PHP学习笔记 - 入门篇(5)
PHP学习笔记 - 入门篇(5) 语言结构语句 顺序结构 eg: <?php $shoesPrice = 49; //鞋子单价 $shoesNum = 1; //鞋子数量 $shoesMoney ...
- PHP学习笔记 - 入门篇(4)
PHP学习笔记 - 入门篇(4) 什么是运算符 PHP运算符一般分为算术运算符.赋值运算符.比较运算符.三元运算符.逻辑运算符.字符串连接运算符.错误控制运算符. PHP中的算术运算符 算术运算符主要 ...
- PHP学习笔记 - 入门篇(3)
PHP学习笔记 - 入门篇(3) 常量 什么是常量 什么是常量?常量可以理解为值不变的量(如圆周率):或者是常量值被定义后,在脚本的其他任何地方都不可以被改变.PHP中的常量分为自定义常量和系统常量 ...
- PHP学习笔记--入门篇
PHP学习笔记--入门篇 一.Echo语句 1.格式 echo是PHP中的输出语句,可以把字符串输出(字符串用双引号括起来) 如下代码 <?php echo "Hello world! ...
- LESS学习笔记 —— 入门
今天在网上完成了LESS的基础学习,下面是我的学习笔记.总共有三个文件:index.html.main.less.mian.css,其中 mian.css 是 main.less 经过Koala编译之 ...
- Dubbo -- 系统学习 笔记 -- 入门
Dubbo -- 系统学习 笔记 -- 目录 入门 背景 需求 架构 用法 入门 背景 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行, ...
- Netty学习笔记-入门版
目录 Netty学习笔记 前言 什么是Netty IO基础 概念说明 IO简单介绍 用户空间与内核空间 进程(Process) 线程(thread) 程序和进程 进程切换 进程阻塞 文件描述符 文件句 ...
- solr学习笔记-入门
solr学习笔记 1.安装前准备 solr依赖java 8 运行环境,所以我们先安装java.如果没有java环境无法启动solr服务,并且会看到如下提示: [root@localhost solr- ...
- ADO.NET 学习笔记 入门教程
本文转载自:http://www.youarebug.com/forum.php?mod=viewthread&tid=57&page=1&extra=#pid63 这是本人在 ...
- 0042 MySQL学习笔记-入门--01
基本概念: 数据库DB(database): 数据的仓库,数据的集合,是数据的一种结构化的存储 数据库管理系统DBMS(database management system): 管理数据库的一套软件 ...
随机推荐
- linux下安装Elasticsearch(单机版和集群版)
一.linux下安装Elasticsearch(单机) 1.软件下载 下载地址:https://www.elastic.co/cn/downloads/past-releases/elasticsea ...
- 面试突击84:Spring 有几种事务隔离级别?
Spring 中的事务隔离级别和数据库中的事务隔离级别稍有不同,以 MySQL 为例,MySQL 的 InnoDB 引擎中的事务隔离级别有 4 种,而 Spring 中却包含了 5 种事务隔离级别. ...
- Kubernetes(k8s)为容器设置启动时要执行的命令和参数
创建 Pod 时设置命令及参数 创建 Pod 时,可以为其下的容器设置启动时要执行的命令及其参数.如果要设置命令,就填写在配置文件的 command 字段下,如果要设置命令的参数,就填写在配置文件的 ...
- SpringBoot项目的CI配置 # 安全变量
运行GitLab Runner容器 参考Run GitLab Runner in a container - Docker image installation and configuration 执 ...
- MongoDB 副本集的用户和权限一般操作步骤
步骤总结: 在主节点上添加超管用户,副本集会自动同步 按照仲裁者.副本节点.主节点的先后顺序关闭所有节点服务 创建副本集认证的key文件,复制到每个服务所在目录 修改每个服务的配置文件,增加参数 启动 ...
- 工业互联网领域的企业,都已经接入了ERP或者MES系统了吗?
肯定不是得啊!之前的两化,后来的企业上云,到当下的智能制造.数字化转型,不都是想把制造业(也就是你说的工业互联网企业)往这个方向推么,ERP和MES是企业数字化的一部分,但不是全部,当然有的企业(小工 ...
- C#-1 .Net框架
一 .Net框架组成分为三部分:公共语言运行时CLR.框架类库FCL和编程工具 1.CLR:公共语言运行时(Common Language Runtime): 是一个运行时环境负责代码安全验证.代码执 ...
- 微信小程序第三方授权登录
登录流程时序图: 1.调用uni.getProvider()获取服务供应商,参数service确定是选择对应的什么操作,此处选择授权登录oauth 代码如下: 2.调用登录接口uni.login(), ...
- 手把手教你玩转 Gitea|在 Windows 系统上安装 Gitea
Gitea 支持在 Windows 系统上安装和使用.Gitea 本身作为一个单体应用程序,即点即用,如需长期驻留作为后台服务并开机运行就要依靠 Windows 服务工具 sc.exe. 通过本文,你 ...
- 提高工作效率的神器:基于前端表格实现Chrome Excel扩展插件
Chrome插件,官方名称extensions(扩展程序):为了方便理解,以下都称为插件. 我们开发的插件需要在浏览器里面运行,打开浏览器,通过右上角的三个点(自定义及控制)-更多工具-拓展程序-打开 ...