C++笔记(1)——类的基本概念知识
C#和C++的部分面向对象方式类似,只记录不同点。
定义类与关键字:
下面是C++类的定义方式与C++关键字public和private的表达方式:
class Box
{
private:
// 私有成员
public:
// 公共成员
};
函数:
在类内定义的函数被隐式声明为内联函数
构造函数:
如果没有给指针类型和基本类型成员赋值(或者初始化),他们将会包含垃圾值
如果已经定义了一个构造函数,无论怎样,编译器将不会再去构造一个默认无参
这样做能初始化一个对象:
Box a; // a被初始化了
可以在类内用Default创建一个默认无参的构造函数:
Box() = default;
在类内用default创建的构造函数,在源文件不能有定义
所有参数都有默认值的构造函数仍然算作默认构造函数
可以用初始化列表来初始化成员变量:
Box::Box(double lv, double wv...) : length = lv, width = wv...
{
//code-in
}
构造函数只有一个参数(或者只有第一个参数没有默认值的)是有问题的,编译器可以用这种构造函数吧参数类型转换为类类型
可以使用explicit关键字限定:
explicit Cube(double aside);
委托构造函数可以如下表达:
Box::Box(double lv, double wv...) : length = lv, width = wv...
{
//code-in
}
Box::Box(double side) : Box(side, side...)
{
//code-in
}
副本构造函数的实参必须是引用(最好为const引用)
this指针:
返回this指针需要将函数类型转为指针类型
可以依靠this指针构造一个方法链:
// 所有的成员函数都为指针类型且返回this指针
myBox.setLength(20.0).setwidth(40.0).setHeight(10.0);
友元:
友元可以访问类中的所有对象,但破坏了OOP原则(封装)
在类中使用指针:
这里懒得写解释了直接上全部实例代码:
之后可能会多写一些博客笔记,顺便在上面登记一些程序(轮子)和习题(**算法~)^_^
C++笔记(1)——类的基本概念知识的更多相关文章
- tensorflow笔记(一)之基础知识
tensorflow笔记(一)之基础知识 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7399701.html 前言 这篇no ...
- python学习笔记4_类和更抽象
python学习笔记4_类和更抽象 一.对象 class 对象主要有三个特性,继承.封装.多态.python的核心. 1.多态.封装.继承 多态,就算不知道变量所引用的类型,还是可以操作对象,根据类型 ...
- 机器学习框架ML.NET学习笔记【1】基本概念与系列文章目录
一.序言 微软的机器学习框架于2018年5月出了0.1版本,2019年5月发布1.0版本.期间各版本之间差异(包括命名空间.方法等)还是比较大的,随着1.0版发布,应该是趋于稳定了.之前在园子里也看到 ...
- php面试笔记(5)-php基础知识-自定义函数及内部函数考点
本文是根据慕课网Jason老师的课程进行的PHP面试知识点总结和升华,如有侵权请联系我进行删除,email:guoyugygy@163.com 在面试中,考官往往喜欢基础扎实的面试者,而函数相关的考点 ...
- php面试笔记(3)-php基础知识-运算符
本文是根据慕课网Jason老师的课程进行的PHP面试知识点总结和升华,如有侵权请联系我进行删除,email:guoyugygy@163.com 在面试中,考官往往喜欢基础扎实的面试者,而运算符相关的考 ...
- Java学习笔记——File类之文件管理和读写操作、下载图片
Java学习笔记——File类之文件管理和读写操作.下载图片 File类的总结: 1.文件和文件夹的创建 2.文件的读取 3.文件的写入 4.文件的复制(字符流.字节流.处理流) 5.以图片地址下载图 ...
- 《Programming Hive》读书笔记(两)Hive基础知识
<Programming Hive>读书笔记(两)Hive基础知识 :第一遍读是浏览.建立知识索引,由于有些知识不一定能用到,知道就好.感兴趣的部分能够多研究. 以后用的时候再具体看.并结 ...
- Xamarin开发笔记—设备类&第三方弹窗的使用和注意事项
一.设备类是Xamarin重要开发组成部分,下面介绍一下设备类的主要用法: //唤醒打电话 Device.OpenUri(new Uri("tel:180xxxxxxxx")); ...
- C# 图解教程 第四章 类的基本概念
类的基本概念 类的概述声明类 类成员字段方法 创建变量和类的实例为数据分配内存实例成员访问修饰符 私有访问和公用访问 从类的内部访问成员从类的外部访问成员综合应用 类的基本概念 类的概述 类是一种活动 ...
- java类(Class)的概念;对象的概念,声明类的属性 和方法,局部变量和成员变量,面向对象编程思维,抽象的概念
类(Class)的概念 类是对一组具有相同特征和行为的对象的抽象描述. 理解: [1] 类包含了两个要素:特性和行为 => 同一类事物具有相同的特征和行为. [2] 类是一个群体性概念.例如:网 ...
随机推荐
- 谷歌浏览器配置vue调试工具
1.下载调试工具 下载地址:Vue Devtools_6.1.4_chrome扩展插件下载_极简插件 点击推荐下载 2.解压下载的压缩文件: 3.打开chrome浏览器,进入chrome://exte ...
- TiDB Lightning导入超大型txt文件实践
背景 TiDB 提供了很多种数据迁移的方式,但这些工具/方案普遍对MySQL比较友好,一旦涉及到异构数据迁移,就不得不另寻出路,借助各种开源或商业的数据同步工具.其实数据在不同系统的流转当中,有一种格 ...
- 关于Java中值传递和址传递
参数传递在Java中有两种类型 值和址 其实本质都是一份拷贝 在调用函数的时候 进行压栈 传进来的参数会被开辟一份新的空间 传基本类型是把值传过去 传引用数据类型是实例指向实参 void m(int ...
- 干货|工作中要使用Git,看这篇文章就够了
本文将从 Git 入门到进阶.由浅入深,从常用命令.分支管理.提交规范.vim 基本操作.进阶命令.冲突预防.冲突处理等多方面展开,足以轻松应对工作中遇到的各种疑难杂症,如果觉得有所帮助,还望看官高抬 ...
- docker启动mysql报错Can't read dir of '/etc/mysql/conf.d/'
执行命令: docker run -p 3306:3306 --privileged=true -v /mysql/data:/var/lib/mysql -v /mysql/log:/var/log ...
- 【总结】浅刷leetcode,对于位运算提高性能的一些总结
目录 什么是位运算? 位运算技巧 1. 判断奇偶性 2. 交换两个数 3. 判断一个数是否是2的幂次方 4. 取绝对值 5. 计算平均数 结论 位运算技巧是计算机科学中非常重要的一部分,它可以用来解决 ...
- Linux 内存管理 pt.1
哈喽大家好,我是咸鱼 今天我们来学习一下 Linux 操作系统核心之一:内存 跟 CPU 一样,内存也是操作系统最核心的功能之一,内存主要用来存储系统和程序的指令.数据.缓存等 关于内存的学习,我会尽 ...
- Istio数据面新模式:Ambient Mesh技术解析
摘要:Ambient Mesh以一种更符合大规模落地要求的形态出现,克服了大多数Sidecar模式的固有缺陷,让用户无需再感知网格相关组件,真正将网格下沉为基础设施. 本文分享自华为云社区<华为 ...
- Prism Sample 8 ViewModelLocator
这一例只是说明ViewModelLocator的使用,没有难度,跳过.
- 关于 Bash 脚本中 Shebang 的趣事
哈喽大家好,我是咸鱼 不知道小伙伴们在写 Bash 脚本或者说看别人的 Bash 脚本的时候有没有注意过脚本的第一行 #!/bin/bash Bash 脚本的第一行往往以 #! 开头,这一行称作 sh ...