类和对象

本文介绍了类和对象的基本概念,探讨了类的访问限定符、成员函数等特性,并详细讲解了构造函数、拷贝构造函数、析构函数以及赋值运算符重载等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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指针。

这里写图片描述

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值