欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

类和对象

程序员文章站 2022-04-06 20:57:44
...

1:类和对象的相关概念
类(class/struct)是一种非基本的数据类型,包括数据(成员变量)和程序(成员函数),类的访问限定符有三种,私有(private)、保护(protected)、公有(public),通过给予成员变量和成员函数不同的访问限定符,达到限定对象访问的目的。类的访问限定符体现了面向对象的封装性。 一个类并没有分配实际的内存空间来储存它,只有当一个类实例化对象的时候,才给它分配成员变量大小的物理空间。

2:
六个默认成员函数:当类中没有写默认的成员函数时,系统会自动生成
构造函数
对象构造时,系统自动调用相应构造函数。构造函数可以重载。

class
{
public:
    Date()//无参构造
    {}
    Date(int year,int month,int day)//带参构造
    {}
    Date(int year = 1,int month = 1,int day = 1)//全缺省构造
    {}
    Date(int year = 1,int month,int day)//半缺省构造
    {}
};

拷贝构造函数
创建对象时使用同类对象来初始化,拷贝构造函数是特殊的构造函数

Date(const Date& d)
{}

注意:1.拷贝构造函数的参数必须使用引用传参,使用传值得方式会造成无穷递归调用。
2.拷贝构造函数其实是构造函数的重载。

析构函数
对象生命周期结束时,系统会自动调用析构函数。析构函数不是删除对象,只是做一些清理工作。

~Date()
{}

先定义的后析构,后定义的先析构:例如,先定义d1,再定义d2,析构的时候,先析构d2,再析构d1。
赋值运算符重载
赋值运算符重载是对一个已存在的对象进行拷贝赋值。

Date& operator=(const Date& d)
{

return *this;
}

返回的是引用,函数栈帧结束后,*this还存在,所以返回引用。

取地址运算符重载和const修饰的取地址运算符重载不太常用。

3:隐含的this指针
每个成员函数都有一个指针形参,它的名字是固定的,就是this指针。在对象调用成员函数时,编译器会对成员函数进行处理,对象地址做实参传给成员函数的第一个形参this指针。this指针是隐含的,我们不能给其添加定义,也不能在调用时传递地址给this指针。

类和对象

类和对象

相关标签: 面向对象 对象