C++基础之类和对象一
类用来确定一类对象的形为,而这些行为是通过类的内部数据和操作来确定的。这些行为是通过一种操作接口来描述的。
(2)类的定义格式如下所示。
class <类名>
{
public:
<成员函数和数据成员的说明>
private://只有成员函数或者经过特殊说明的函数才可以访问
<数据成员和成员函数的说明>
};
<各成员函数的实现>
这里, class是关键字,<类名>同标识符。类的定义分两大部分:类的说明部分和类的实现部分。
(3)对象是类的一个实例,它是属于某个已知类的。对象实际上是客观实体的抽象,反映出客观实体的属性
4)对象定义格式如下所示
<类名><对象名>(<初值表>)
对象成员表示方法如下所示。
<对象名>.<成员名>(<参数表>)或者
<对象指针名>-><成员名>(<参数表>)
(5)构造函数是一种特殊的成员函数,它具有如下特点。
①构造函数是由系统自动调用来给对象进行初始化的
②构造函数的名字同类名,一个类的构造函数可以重载。
③构造函数在定义时不要指定类型。
⑤一个类中如果没有定义任何的构造函数,系统自动生成一个默认的构造函数
④构造函数可定义在类体内,也可定义在类体外。
(6)析构函数也是一种特殊的成员函数,它具有如下特点。
①析构函数是用来释放一个对象的。一般放况下,当一个对象的生存期结束时、系统自动调用析构函数将它释放
②析构函数名字也与类名相同,并且名字前面加符号~与构造函数区别。
③析构函数不需指出类型,并且没有参数。
④类中没有定义析构函数时,系统自动生成一个默认的析构函数。
<类名>::<拷贝初始化构造函数名>(const <类名>&<引用名>)
(8)成员函数可以是内联函数也可以是外联函数,定义在类体内的成员函数为内联函数,定义在类体外前面加关键字inline的也是内联函数
(9)成员函数可以重载,也可以设置参数的默认值
(10)类中使用关键字 static修饰的成员为静态成员。静态成员包含有静态数据成员和静态成员函数。静态成员是属于整个类的,而不是某个对象的,是所有对象共享的。
(11)友元函数不是成员函数,但它被说明在类体内、并可以访问该类中的私有成员。友元函数是破坏封装性的,应尽量少用。
(12)友元类是指该类的成员函数为友元函数的一种特殊类(当一个类作为另一个类的友元时,这个类的所有成员函数都是另一个类的友元函数)。
(13)类的作用域一般是指该类的类体内,称为类域,某个类中某个成员在一定条件下具有该类的作用域。
(14)在一个函数体内定义的类称局部类。在一个类中定义的类称为嵌套类。嵌套类的成员函数不可以在它的类体外定义
(15)对象按其不同的生存期可分为如下几种:
①局部对象
②静态对象
③全局对象
C++基础之类和对象一的更多相关文章
- 第31节:Java基础-类与对象
前言 Java基础-类与对象,方法的重载,构造方法的重载,static关键字,main()方法,this关键字,包,访问权限,类的继承,继承性,方法的重写,super变量. 方法的重载:成员方法的重载 ...
- Java基础-IO流对象之压缩流(ZipOutputStream)与解压缩流(ZipInputStream)
Java基础-IO流对象之压缩流(ZipOutputStream)与解压缩流(ZipInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 之前我已经分享过很多的J ...
- Java基础-IO流对象之随机访问文件(RandomAccessFile)
Java基础-IO流对象之随机访问文件(RandomAccessFile) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.RandomAccessFile简介 此类的实例支持对 ...
- Java基础-IO流对象之内存操作流(ByteArrayOutputStream与ByteArrayInputStream)
Java基础-IO流对象之内存操作流(ByteArrayOutputStream与ByteArrayInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.内存 ...
- Java基础-IO流对象之数据流(DataOutputStream与DataInputStream)
Java基础-IO流对象之数据流(DataOutputStream与DataInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数据流特点 操作基本数据类型 ...
- Java基础-IO流对象之打印流(PrintStream与PrintWriter)
Java基础-IO流对象之打印流(PrintStream与PrintWriter) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.打印流的特性 打印对象有两个,即字节打印流(P ...
- Java基础-IO流对象之序列化(ObjectOutputStream)与反序列化(ObjectInputStream)
Java基础-IO流对象之序列化(ObjectOutputStream)与反序列化(ObjectInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.对象的序 ...
- java基础-IO流对象之Properties集合
java基础-IO流对象之Properties集合 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Properties集合的特点 Properties类表示了一个持久的属性集. ...
- Java基础-IO流对象之字符缓冲流(BufferedWriter与BufferedReader)
Java基础-IO流对象之字符缓冲流(BufferedWriter与BufferedReader) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.字符缓冲流 字符缓冲流根据流的 ...
- Java基础-IO流对象之字节缓冲流(BufferedOutputStream与BufferedInputStream)
Java基础-IO流对象之字节缓冲流(BufferedOutputStream与BufferedInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在我们学习字 ...
随机推荐
- Codeforces 914C Travelling Salesman and Special Numbers:数位dp
题目链接:http://codeforces.com/problemset/problem/914/C 题意: 对数字x进行一次操作,可以将数字x变为x在二进制下1的个数. 显然,一个正整数在进行了若 ...
- HTML5坦克大战
在JavaScript中,不要在变量为定义之前去使用,这样很难察觉并且无法运行. 颜色不对. 当我的坦克移动时,敌人坦克消失. tankGame3.html <!DOCTYPE html> ...
- kvm初体验之九:vm创建快照
1. 准备一个磁盘格式为qcow2的vm(raw格式的磁盘无法创建快照) 方法一:从头安装一个磁盘格式为qcow2的vm [root@tanghuimin vm]# qemu-img create - ...
- spring+mybatis的事务配置
出自:http://kinglixing.blog.51cto.com/3421535/723870 定义一个实体类:Emp.java package com.lixing.scm.entity; p ...
- 13 Python 函数进阶
代码在运行伊始,创建的存储“变量名与值的关系”的空间叫做全局命名空间,在函数的运行中开辟的临时的空间叫做局部命名空间 命名空间和作用域 命名空间的本质:存放名字与值的绑定关系 >>> ...
- android SDK manager 无法获取更新版本列表【转载】
http://mirrors.neusoft.edu.cn/eclipse/releases/luna/打开这个网址就可以看到adt的详细信息: http://developer.android.c ...
- tarjian求lca
看了好多dalao的博客,就总结一下啦ovo tarjian算法很是神奇,它的作用是求lca.它是一种离线算法. 在线是指输入一个询问输出一个结果. 离线是将询问一次性输入,一起处理. tarjan它 ...
- Maven(2)-坐标和依赖
本文简要介绍Maven里面的坐标(coodinate)以及maven依赖管理(Dependency) 一.坐标 先来个截图: 在上图peoject栏目有groupId,artifactId,versi ...
- bzoj 1941 [Sdoi2010]Hide and Seek——KDtree
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1941 第二道KDtree! 枚举每个点,求出距离它的最远和最近距离.O( n * logn ...
- CSS 关于文本 背景 边框整理
文本与字体 1)阴影:text-shadow 格式:text-shadow:5px 5px 3px #FFFFFF分别对应 水平方向 垂直方向 模糊程度 颜色值 代码: <!DOCTYPE ht ...