C/C++基础----类
- IO类属于不能被拷贝的类型,因此只能通过引用来传递。同时读取和写入操作都会改变流的内容,所以接收的是普通引用。
- 类内的友元声明仅仅指定了访问的权限,需要在友元声明之外再专门对函数进行一次声明。
- 可变数据成员永远不会是const,即使它是const对象的成员。
- 友元关系不存在传递性,父类是友元类,子类不继承。
- 类在声明之后定义之前是不完全类型。可以定义指向这种类型的指针或引用,也可以声明以不完全类型作为参数或者返回类型的函数。
- 成员初始化顺序与其在类定义中出现的顺序一致。
- 委托构造函数,使用类内其他构造函数执行其初始化过程,如果被委托的构造函数体有代码,执行完这些代码才将控制权交还给委托者,执行委托者的函数体。
- 编译器只会自动进行一步类类型转换
- explicit构造函数只能用于直接初始化,而不能用于拷贝形式的初始化。但是仍然可以显式地进行转换。
值初始化
int型初始化为0,string初始化为空串。
(1)在数组初始化的过程中,如果提供的初始值数量少于数组的大小,剩下的元素会进行值初始化;
(2)当我们不使用初始值定义一个局部静态变量时;
(3)当我们通过书写形如T()的表达式显示地请求值初始化时;
默认初始化
定义变量时没有指定初始值,默认值到底是什么由类型决定,跟定义的位置也有关系。
函数体之外的被定义成0,定义在块作用域内部的内置变量,值是未定义的。不能直接使用
(1)当我们在块作用域内不使用任何初始值定义一个非静态变量时,
(2)当一个类本身含有类类型成员且使用合成的默认构造函数时;
(3)当类类型的成员没有在构造函数初始值列表中显示地初始化时;
一个类对象进行默认初始化和值初始化,必须要有相应的默认构造函数。
聚合类,可以使用花括号括起来的成员初始化列表
所有成员public,没有定义任何构造函数,没有类内初始值,没有基类,没有虚函数。
通常情况类的静态成员不应该在类的内部初始化。除了const static或者constexpr static不需要分别定义。
即使常量静态数据成员在类内被初始化了,也应该在类外部定义一下该成员。
C/C++基础----类的更多相关文章
- python基础——类和实例
python基础——类和实例 面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都 ...
- C#核心基础--类(2)
C#核心基础--类的声明 类是使用关键字 class 声明的,如下面的示例所示: 访问修饰符 class 类名 { //类成员: // Methods, properties, fields, eve ...
- OC基础 类的三大特性
OC基础 类的三大特性 OC的类和JAVA一样,都有三大特性:继承,封装,多态,那么我们就来看一下OC中类的三大特性. 1.继承 继承的特点: (1)子类从父类继承了属性和方法. (2)子类独有的属 ...
- Python基础-类
Python基础-类 @(Python)[python, python基础] 写在前面 如非特别说明,下文均基于Python3 摘要 本文重点讲述如何创建和使用Python类,绑定方法与非绑定方法的区 ...
- python基础——类名称空间与对象(实例)名称空间
python基础--类名称空间与对象(实例)名称空间 1 类名称空间 创建一个类就会创建一个类的名称空间,用来存储类中定义的所有名字,这些名字称为类的属性 而类的良好总属性:数据属性和函数属性 其中类 ...
- 设计模式基础:类及类关系的UML表示
设计模式基础:类及类关系的UML表示 2009-10-26 17:00 by 宗哥, 1891 阅读, 1 评论, 收藏, 编辑 UML中,类关系分为这几种,泛化(generalization), 实 ...
- C#核心基础--类的声明
C#核心基础--类的声明 类是使用关键字 class 声明的,如下面的示例所示: 访问修饰符 class 类名 { //类成员: // Methods, properties, fields, eve ...
- 第31节:Java基础-类与对象
前言 Java基础-类与对象,方法的重载,构造方法的重载,static关键字,main()方法,this关键字,包,访问权限,类的继承,继承性,方法的重写,super变量. 方法的重载:成员方法的重载 ...
- C#基础--类/接口/成员修饰符,多态、重载、重写,静态和非静态
C#基础--类/接口/成员修饰符,多态.重载.重写,静态和非静态 类/接口/成员修饰符 C#修饰符---接口: 接口默认访问符是internal接口的成员默认访问修饰符是public C#修饰符--类 ...
- ios开发之OC基础-类和对象
本系列的文章主要来自于个人在学习前锋教育-欧阳坚老师的iOS开发教程之OC语言教学视频所做的笔记,边看视频,边记录课程知识点.建议大家先过一遍视频,在看视频的过程中记录知识点关键字,把把握重点,然后再 ...
随机推荐
- SGU 110. Dungeon 计算几何 难度:3
110. Dungeon time limit per test: 0.25 sec. memory limit per test: 4096 KB The mission of space expl ...
- AnsiStartsStr 和 空字符串
function AnsiStartsStr(const ASubText, AText: string): Boolean; begin Result := AnsiSameStr(ASubText ...
- python--ConfigParser读写改配置文件
from configparser import ConfigParser fp = 'conf.ini' #定义配置文件名 conf = ConfigParser() #实例化 conf.read( ...
- CodeIgniter $this->db->where()的自定义语句写法问题
.自定义字符串:你可以手动的编写子句:$where = "name='Joe' AND status='boss' OR status='active'"; $this->d ...
- DevExpress v17.2新版亮点—ASP.NET篇(一)
用户界面套包DevExpress v17.2终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了DevExpress ASP.NET v17.2 的GridView Control. ...
- php 无限极分类问题
- 建立自己的javaBean --成功
1.用记事本新建一个java 程序,文件名为TestBean.java ,文件内容如下: package test; public class TestBean{ private String nam ...
- prop和state的区别
1.prop用于定义外部接口,state用于记录内部状态: 2.prop的赋值在外部世界使用组件时,state的赋值在组件内部: 3.组件不应该改变prop的值,但是state的存在目的就是让组件来改 ...
- Hadoop streaming使用自定义python版本和第三方库
在使用Hadoop的过程中,遇到了自带python版本比较老的问题. 下面以python3.7为例,演示如何在hadoop上使用自定义的python版本以及第三方库. 1.在https://www.p ...
- bulid-tool
Build tool 中文构建工具.构建工具能够帮助你创建一个可重复的.可靠的.携带的且不需要手动干预的构建.构建工具是一个可编程的工具,它能够让你以可执行和有序的任务来表达自动化需求.假设你想要编译 ...