(1)类是一种复杂的数据类型,它是抽象数据类型的实现,是数据和相关操作的封装体。
类用来确定一类对象的形为,而这些行为是通过类的内部数据和操作来确定的。这些行为是通过一种操作接口来描述的。
(2)类的定义格式如下所示。

class <类名>
{
public:
<成员函数和数据成员的说明>
private://只有成员函数或者经过特殊说明的函数才可以访问
<数据成员和成员函数的说明>
};
<各成员函数的实现>

这里, class是关键字,<类名>同标识符。类的定义分两大部分:类的说明部分和类的实现部分。

(3)对象是类的一个实例,它是属于某个已知类的。对象实际上是客观实体的抽象,反映出客观实体的属性
4)对象定义格式如下所示
<类名><对象名>(<初值表>)
对象成员表示方法如下所示。
<对象名>.<成员名>(<参数表>)或者
<对象指针名>-><成员名>(<参数表>)
(5)构造函数是一种特殊的成员函数,它具有如下特点。
①构造函数是由系统自动调用来给对象进行初始化的
②构造函数的名字同类名,一个类的构造函数可以重载。
③构造函数在定义时不要指定类型。
⑤一个类中如果没有定义任何的构造函数,系统自动生成一个默认的构造函数
④构造函数可定义在类体内,也可定义在类体外。
(6)析构函数也是一种特殊的成员函数,它具有如下特点。
①析构函数是用来释放一个对象的。一般放况下,当一个对象的生存期结束时、系统自动调用析构函数将它释放
②析构函数名字也与类名相同,并且名字前面加符号~与构造函数区别。
③析构函数不需指出类型,并且没有参数。
④类中没有定义析构函数时,系统自动生成一个默认的析构函数。

(7)拷贝初始化构造函数是用一个已知对象来初始化一个被创建的同类的对象。拷贝初始化构造函数也是一种与类名同名的构造函数,定义时不指出类型,并有一个参数该参数是该类对象的引用。(如果类中没有说明拷贝初始化构造函数,则编译系统自动生成一个)(由一个对象初始化另一个对象,当对象作为函数实参传递给形参,当对象作为返回值时,调用拷贝初始化构造函数)

<类名>::<拷贝初始化构造函数名>(const <类名>&<引用名>)

(8)成员函数可以是内联函数也可以是外联函数,定义在类体内的成员函数为内联函数,定义在类体外前面加关键字inline的也是内联函数

(9)成员函数可以重载,也可以设置参数的默认值
(10)类中使用关键字 static修饰的成员为静态成员。静态成员包含有静态数据成员和静态成员函数。静态成员是属于整个类的,而不是某个对象的,是所有对象共享的。
(11)友元函数不是成员函数,但它被说明在类体内、并可以访问该类中的私有成员。友元函数是破坏封装性的,应尽量少用。
(12)友元类是指该类的成员函数为友元函数的一种特殊类(当一个类作为另一个类的友元时,这个类的所有成员函数都是另一个类的友元函数)。
(13)类的作用域一般是指该类的类体内,称为类域,某个类中某个成员在一定条件下具有该类的作用域。
(14)在一个函数体内定义的类称局部类。在一个类中定义的类称为嵌套类。嵌套类的成员函数不可以在它的类体外定义
(15)对象按其不同的生存期可分为如下几种:
①局部对象
②静态对象
③全局对象

C++基础之类和对象一的更多相关文章

  1. 第31节:Java基础-类与对象

    前言 Java基础-类与对象,方法的重载,构造方法的重载,static关键字,main()方法,this关键字,包,访问权限,类的继承,继承性,方法的重写,super变量. 方法的重载:成员方法的重载 ...

  2. Java基础-IO流对象之压缩流(ZipOutputStream)与解压缩流(ZipInputStream)

    Java基础-IO流对象之压缩流(ZipOutputStream)与解压缩流(ZipInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 之前我已经分享过很多的J ...

  3. Java基础-IO流对象之随机访问文件(RandomAccessFile)

    Java基础-IO流对象之随机访问文件(RandomAccessFile) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.RandomAccessFile简介 此类的实例支持对 ...

  4. Java基础-IO流对象之内存操作流(ByteArrayOutputStream与ByteArrayInputStream)

    Java基础-IO流对象之内存操作流(ByteArrayOutputStream与ByteArrayInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.内存 ...

  5. Java基础-IO流对象之数据流(DataOutputStream与DataInputStream)

    Java基础-IO流对象之数据流(DataOutputStream与DataInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数据流特点 操作基本数据类型 ...

  6. Java基础-IO流对象之打印流(PrintStream与PrintWriter)

    Java基础-IO流对象之打印流(PrintStream与PrintWriter) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.打印流的特性 打印对象有两个,即字节打印流(P ...

  7. Java基础-IO流对象之序列化(ObjectOutputStream)与反序列化(ObjectInputStream)

    Java基础-IO流对象之序列化(ObjectOutputStream)与反序列化(ObjectInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.对象的序 ...

  8. java基础-IO流对象之Properties集合

    java基础-IO流对象之Properties集合 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Properties集合的特点 Properties类表示了一个持久的属性集. ...

  9. Java基础-IO流对象之字符缓冲流(BufferedWriter与BufferedReader)

    Java基础-IO流对象之字符缓冲流(BufferedWriter与BufferedReader) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.字符缓冲流 字符缓冲流根据流的 ...

  10. Java基础-IO流对象之字节缓冲流(BufferedOutputStream与BufferedInputStream)

    Java基础-IO流对象之字节缓冲流(BufferedOutputStream与BufferedInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在我们学习字 ...

随机推荐

  1. python第四篇:linux命令行总结 + 自动备份Python程序

    由于最近需要学习Python爬虫相关的知识,所以就先从Python基础.Linux基础开始进行了学习,下面主要是总结了常见的Linux的命令行.最后为了巩固学到的东西,尝试写了个自动备份的Python ...

  2. css中单位px和em,rem的区别

    PX:PX实际上就是像素,用PX设置字体大小时,比较稳定和精确.但是这种方法存在一个问题,当用户在浏览器中浏览我们制作的Web页面时,如果改变了浏览器的缩放,这时会使用我们的Web页面布局被打破.这样 ...

  3. Selenium-一组元素的定位

    一组元素的定位: 有时候我们可能需要定位一组元素,比如一组checkbox,这时候要实现的思路大概为: 先把一组元素识别出来,然后定位你需要的元素 下面是查找多个元素(这些方法将返回一个列表): 方法 ...

  4. 第二章 python基础(二)

    第九节 函数 函数就是完成特定功能的一个语句组,这组语句可以作为一个单位使用,并且给它取一个名字. 可以通过函数名在程序的不同地方多次执行(这通常叫做函数调用),却不需要在所有地方都重复编写这些语句. ...

  5. BZOJ5324 JXOI2018 守卫

    传送门 这是我见过的为数不多的良心九怜题之一 题目大意 给定一段$n$个点构成的折线,第$i$个折点的坐标是$(i,h_i)$,你可以在$i$点放置一个视野,定义$i$能看到$j$当且仅当$i$处有视 ...

  6. 无旋Treap - BZOJ1014火星人 & 可持久化版文艺平衡树

    !前置技能&概念! 二叉搜索树 一棵二叉树,对于任意子树,满足左子树中的任意节点对应元素小于根的对应元素,右子树中的任意节点对应元素大于根对应元素.换言之,就是满足中序遍历为依次访问节点对应元 ...

  7. 【LeetCode】081. Search in Rotated Sorted Array II

    题目: Follow up for "Search in Rotated Sorted Array":What if duplicates are allowed? Would t ...

  8. DNSmasq

    是一款轻便的主要用于个人电脑的DNS:占用的端口是53(和DNS服务的bind的端口一致):我之所以关注它,就是因为在安装DCOS的时候是不允许占用53端口:但是其实默认安装的CentOS几乎都有这个 ...

  9. 洛谷【P1480】A/B Problem

    题目传送门:https://www.luogu.org/problemnew/show/P1480 高精除低精板子题,灵性地回忆一下小学时期列竖式的草稿纸即可. 时间复杂度:\(O(len)\) 空间 ...

  10. 开源Log框架和平台介绍

    共有162款 日志工具(Logging)开源软件 http://www.oschina.net/project/tag/144/logging