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语言教学视频所做的笔记,边看视频,边记录课程知识点.建议大家先过一遍视频,在看视频的过程中记录知识点关键字,把把握重点,然后再 ...
随机推荐
- mysql添加伪劣及查看表信息
SELECT @rownum:=@rownum+1 AS rownum, table_name.* FROM (SELECT @rownum:=0) r, table_name select ...
- SGU 124. Broken line 射线法 eps的精准运用,计算几何 难度:3
124. Broken line time limit per test: 0.25 sec. memory limit per test: 4096 KB There is a closed bro ...
- sgu106.The equation 拓展欧几里得 难度:0
106. The equation time limit per test: 0.25 sec. memory limit per test: 4096 KB There is an equation ...
- 亚马逊Kindle正式进入中国
6月7日下午消息,亚马逊Kindle今天下午4点正式发售.其中,Kindle电子阅读器和Kindle Fire平板电脑同步销售.Paperwhite售价最低849元,Kindle Fire HD售价最 ...
- 关于Behold the Kickmen (球员登场)
音乐:『Boring,Boring——』作者浑厚的男中音响起,伴随着劲爆的动感音乐 非同正式却又无伤大雅的规则:足球场是圆形的,而且四周有反弹围墙 加强操作的一些设定: 踢踢人射门蓄力时,时间会静止, ...
- redis的主从复制和高可用集群
一.redis的简介 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.redis是一个key-value存储系 ...
- Vue.js 源码学习笔记 -- 分析前准备2 -- Object.defineProperty
解析神奇的 Object.defineProperty 几行代码看他怎么用 var a= {} Object.defineProperty( a, "b", { value ...
- c# winform 中DataGridView绑定List<T> 不能显示数据
遇到问题 DataGridView绑定List后,List更新后再次绑定不显示数据 datagridview 绑定数据源的时候 用List是不能显示修改内容的..要用binginglist<T& ...
- TCP/IP网络知识点总结
学完了计算机网络是时候整理一篇总结了,温故知新.注意:这篇博客很长长长(2.5万字+50图). TCP/IP网络知识点总结 一.总述 1.定义:计算机网络是一些互相连接的.自治的计算机的集合.因特网是 ...
- radio属性添加
经常会遇到js控制radio选中和切换的问题 之前一直使用的是checked属性来完成的 但是现在发现这个属性有个大问题 今天就是用js给选中radio的赋值,使用的$().attr("ch ...