C++类和对象.四个默认成员函数(赋值运算符重载)
来源:互联网 发布:sql如何建立级联 编辑:程序博客网 时间:2024/06/01 23:32
1.(1)类的定义
类就是具有相同数据和相同操作的一组对象的集合。
学生类定义:
class student
{
//成员变量
char* name;
int age;
int sex;
//成员函数
void speak()
{
cout<<name<<"年龄是"<<age<<endl;
}
};
注:类的大小与普通数据成员有关,与成员函数和静态成员无关。空类大小为1.
(2).访问限定符
public:声明对类的外部接口,所有来自外部的访问通过接口进行。
private:只允许本类的成员函数来访问,类外部的访问都是非法的。
protected:介于公有和私有类型之间,只有本类和派生类可以访问。
(3).面向对象封装性
封装是指把数据和现实操作的代码集中起来放在对象内部,并尽可能的隐蔽对象的内部细节。
封装具有两层含义:
a.有关数据+操作代码封装在一个对象内,各个对象相互独立,互不干扰。
b.对象中的有些数据+操作代码对外隐蔽称作信息隐蔽。
注:信息隐蔽有利于数据安全,防止无关人员访问和修改。
2.四个默认成员函数
(1)构造函数
私有成员变量要对他们进行初始化,必须用一个公有的成员函数进行,同时这个函数应该在定义对象时执行一次,这是调用的函数称为构造函数。
构造函数是特殊的成员函数
特征:
a.函数名与类型相同
b.无返回值
c.对象构造(对象实例化)时系统自动调用对应的构造函数
d.构造函数可以重载
e.构造函数可以在类中定义,也可以在类外定义
f.如果类定义中没有给出构造函数,则C++编译器自动产生一个缺省的构造函数,只要我们自己定义了一个构造函数,系统就不会自动生成缺省的构造函数
g.无参的构造函数和全缺省的构造函数都认为是缺省构造函数,并且缺省的构造函数只能有一个
(2)拷贝构造函数
创建对象时使用同类对象来进行初始化,这时所用的构造函数称为拷贝构造函数,拷贝构造函数是特殊的构造函数。
特征:、
a.拷贝构造函数是一个构造函数的重载
b.拷贝构造函数的参数必须使用引用传参,使用传值方式会引发无穷递归调用
c.若未显示定义,系统会默认缺省的拷贝构造函数。缺省的拷贝构造函数会依次拷贝类成员进行初始化
(3)析构函数
当一个对象的生命周期结束时,C++编译系统会自动调用一个成员函数,这个特殊的成员函数即析构函数。
特点:
a.析构函数在类名前加上字符~
b.析构函数无参数无返回值
c.一个类有且仅有一个析构函数,若未显示定义,系统会自动生成一个缺省的析构函数
d.对象生命周期结束时,C++编译系统自动调用析构函数
e.析构函数体内主要完成清理工作
(4)赋值运算符的重载
赋值运算符的重载是一对一已存在的对象进行拷贝赋值。
注:C++不能重载的运算符:: ?: . *sizeof
3.隐含的this指针
(1)除构造函数外每个成员函数都有一个指针形参,称为this指针,this指针是隐式的。
4.运算符重载
(1)C++只能对已有的C++运算符进行重载,不允许用户自己定义新的运算符
(2)C++运算符只有少数几个不能重载::?:.*sizeof
(3)C++重载功能应与原来相似,不能改变运算符操作对象的个数,不能改变运算符原有的优先级.结合特性
(4)运算符重载函数的参数不能全部是C++预定义的基本数据类型
(5)运算符重载函数可以是普通函数、类的成员函数、类的友元函数。
- C++类和对象.四个默认成员函数(赋值运算符重载)
- 类和对象(四个默认成员函数+运算符重载)
- 类和对象->四个默认成员函数->运算符重载
- 【c++】类和对象--四个默认成员函数+运算符重载
- 【C++】类和对象--基础知识+四个默认成员函数+运算符重载
- Cpp类和对象之四个默认成员函数和运算符重载
- 类和对象1--四个默认成员函数+运算符重载
- 类和对象——四个默认成员函数+运算符重载
- C++类和对象、四个默认成员函数、运算符重载
- CPP类和对象—四个默认成员函数+运算符重载
- 类和对象 , 四个默认成员函数及运算符重载 , 隐含的this指针
- C++类和对象1--四个默认成员函数+运算符重载
- C++类和对象——四个默认成员函数+运算符重载
- CPP类和对象+四个默认成员函数+运算符重载
- 《类和对象+四个默认函数+运算符重载》
- CPP类和对象--四个默认函数+运算符重载
- 四个默认成员函数和运算符重载
- 四个默认成员函数和重载运算符
- Spark Sql性能测试
- SQL Server 2017 SP1 补丁发布(二)
- 【阿里云】入门笔记-ECS云服务器配置java开发环境
- 动态规划:二维费用的背包问题
- 区域批量导入ocupload一键上传使用
- C++类和对象.四个默认成员函数(赋值运算符重载)
- Unity_数据类型之间的相互转换
- 51nod 1288 汽油补给【贪心】【ST表】【单调栈】
- Java面试题链表、树和位操作
- SQL Server 2017 SP1 补丁发布(三)
- 数据分析案例_2012联邦选举数据分析
- xampp安装、问题解决及使用
- Linux_1_文件——文件描述符
- 【本文由“编程大师”发布,2017年10月21日】