C++笔记(2018/2/7)
类class
- 类的名字就是用户自定义的类型的名字。可以像使用基本类型那样来使用它。
- 一个类所占用的内存空间的大小,等于所有成员变量的大小之和。
- 类之间可以用 “=”进行赋值,但是不能用 “==”,“!=”,“>”,“<”“>=”“<=”进行比较,除非这些运算符经过了“重载”。
- 使用类的成员变量和成员函数:
- 对象名.成员名
- 指针->成员名
- 引用名.成员名
- 类成员可被访问的范围:
- private: 私有成员,只能在成员函数内访问。
- public : 公有成员,可以在任何地方访问。
- protected: 保护成员,只可以在成员函数和其的子类中访问。
- 以上三种关键字出现的次数和先后次序都没有限制。
- 在类的成员函数内部,能够访问:
- 当前对象的全部属性、函数;
- 同类其它对象的全部属性、函数。
- 在类的成员函数以外的地方,只能够访问该类对象的公有成员。
- 成员函数同样可以重载及缺省参数。
构造函数
- 成员函数的一种:
- 名字与类名相同,可以有参数,不能有返回值(void也不行)。
- 作用是对对象进行初始化,如给成员变量赋初值。
- 如果定义类时没写构造函数,则编译器生成一个默认的无参数的构造函数。
- 默认构造函数无参数,不做任何操作。
- 如果定义了构造函数,则编译器不生成默认的无参数的构造函数。
- 对象生成时构造函数自动被调用。对象一旦生成,就再也不能在其上执行构造函数。
- 一个类可以有多个构造函数。
复制构造函数
- 只有一个参数,即对同类对象的引用。
- 形如 X::X( X& )或X::X(const X &), 二者选一后者能以常量对象作为参数
- 如果没有定义复制构造函数,那么编译器生成默认复制构造函数。默认的复制构造函数完成复制功能。
- 如果定义的自己的复制构造函数, 则默认的复制构造函数不存在。
- 不允许有形如 X::X( X )的构造函数。
- 复制构造函数起作用的三种情况:
- 当用一个对象去初始化同类的另一个对象时。
- 如果某函数有一个参数是类A的对象,那么该函数被调用时,类A的复制构造函数将被调用。
- 如果函数的返回值是类A的对象时,则函数返回时,A的复制构造函数被调用。
类型转换构造函数
- 定义转换构造函数的目的是实现类型的自动转换。
- 只有一个参数,而且不是复制构造函数的构造函数,一般就可以看作是转换构造函数。
- 当需要的时候,编译系统会自动调用转换构造函数,建立一个无名的临时对象(或临时变量)。
析构函数
- 名字与类名相同,在前面加‘~’,没有参数和返回值,一个类最多只能有一个析构函数。
- 析构函数对象消亡时即自动被调用。可以定义析构函数来在对象消亡前做善后工作,比如释放分配的空间等。
- 如果定义类时没写析构函数,则编译器生成缺省析构函数。缺省析构函数什么也不做。
- 如果定义了析构函数,则编译器不生成缺省析构函数。
查看我的C++学习计划
C++笔记(2018/2/7)的更多相关文章
- MongoDB笔记2018.2.6
MongoDB笔记2018.2.6 1.先简单接触下linux,大部分教程是在linux环境下的操作,要不然看不懂教程 2.找教程或视频 教程推荐菜鸟教程 学习MongDB前需要懂一定的Mysql语法 ...
- selenium 笔记 2018
1.指定浏览器驱动:dr = webdriver.Firefox(executable_path = '/Users/xxx/Documents/selenium_py/geckodriver/gec ...
- Django学习笔记-2018.12.08
在Python的正则表达式中,有一个参数为re.S.它表示“.”(不包含外侧双引号,下同)的作用扩展到整个字符串,包括“\n”.看如下代码: import re a = '''asdfhellopas ...
- Django学习笔记-2018.11.17
URL配置: 项目下的urls.py配置的为URL总路径,在使用第二种方法在app下配置的urls.py是在总路径下的分路径 Templates: DTL初步使用 render()函数支持dict类型 ...
- Django学习笔记-2018.11.16
知识储备: 1 Python基础 2 数据库SQL 3 HTTP协议 4 HTML&&CSS 5 正则表达式 Django启动 django-admin startproject pr ...
- Django 笔记2018.2.7
1.基础知识 1.1web服务基本原理 1.2 WSGI 目前最通用的web接口规范,python默认支持,在Django中是一个库 1.3WEB基础知识 MTV (Model Template Vi ...
- Mysql_笔记2018.1.29
1.主要数据库 Oracle MySQL Sqlsever 微软 MongoDB (非关系型数据库) 2.MySql 专业词语 1.数据库:一些关联表的集合 2.数据表:表示数据的矩阵 3.列:同ex ...
- Mysql_笔记2018.1.28
1.Mysql代码规范 1.关键字.函数名称大写 2.数据库名称.表名称.字段名称等全部小写 3.必须以分号;结尾 (或 \g) 2.记录mysql日志 开始记录 mysql> \T 日志地址 ...
- 20.IO流部分笔记
20.IO流部分笔记 2018/09/06 1.IO流 1.1 创建字节输出流对象,如果没有就自动创建一个 FileOutputStram fos = new FileOutputStram(&qu ...
- 19异常和file部分笔记
19异常和file部分笔记-2018/09/041.异常 1.1 throwable()几个常见方法 * getMessage()获取异常信息,返回字符串 * toString()获取异常类名和异常 ...
随机推荐
- [博客迁移]探索Windows Azure 监控和自动伸缩系列3 - 启用Azure监控扩展收集自定义监控数据
上一篇我们介绍了获取Azure的监控指标和监控数据: http://www.cnblogs.com/teld/p/5113376.html 本篇我们继续:监控虚拟机的自定义性能计数器. 随着我们应用规 ...
- [openjudge-动态规划]摘花生
题目描述 描述 Hello Kitty 想摘点花生送给她喜欢的米老鼠.她来到一片有网格状道路的矩形花生地(如下图),从西北角进去,东南角出来.地里每个道路的交叉点上都有种着一株花生苗,上面有若干颗花生 ...
- Spark学习之路 (十三)SparkCore的调优之资源调优JVM的基本架构
一.JVM的结构图 1.1 Java内存结构 JVM内存结构主要有三大块:堆内存.方法区和栈. 堆内存是JVM中最大的一块由年轻代和老年代组成,而年轻代内存又被分成三部分,Eden空间.From Su ...
- QT 继承QWidget && 继承QDialog
工作项目中,利用到Qt对话框,场景需求: 1. 一部分窗体需要继承自QWidget 2. 一部分窗体需要继承自QDialog 3. 两者均需要去掉标题栏图标,同时能够自由拖动. 如果两者分开继承实现, ...
- python pandas简单使用处理csv文件
这里jira.csv是个大文件 1) >>> import pandas >>> jir=pandas.read_csv(r'C:\Temp\jira.csv') ...
- 20165305 苏振龙《Java程序设计》第二周学习总结
代码托管(ch2,ch3) 脚本截图 教材内容总结 类型.变量与运算符 基本类型 整数(short.int.long) 字节(byte) 浮点数(float/double) 字符(char)将一个数字 ...
- c# 图像呈现控件PictureBox
在c#中可以使用PictureBox控件来呈现图像,图像资源可以来自文件,也可以是存在内存中的位图对象.可以显示本地图像文件或来自网络的图片,也可以来自项目文件中的图像. 从URI加载图像文件. 调用 ...
- python中的logger模块
logger 提供了应用程序可以直接使用的接口handler将(logger创建的)日志记录发送到合适的目的输出filter提供了细度设备来决定输出哪条日志记录formatter决定日志记录的最终输出 ...
- winscp中使用sudo的方法
用截图了解如何在 WinSCP 中使用 sudo. 首先你需要检查你尝试使用 WinSCP 连接的 sftp 服务器的二进制文件的位置.你可以使用以下命令检查 SFTP 服务器二进制文件位置: [ro ...
- Python数据类型的显式转换
数据类型的显示转换,也称为数据类型的强制类型转换,是通过Python的内建函数来实现的类型转换. 显式转换的多种类型: int(x [,base]) ⇒ 将x转换为一个十进制的整数 long(x [, ...