2.类和对象(上)

本文介绍了C++中的面向对象特性,包括类的定义、访问限制符和封装概念,详细讲解了this指针的作用。此外,还探讨了构造函数的特性,如自动调用和初始化数据成员,并解释了拷贝构造函数在创建对象副本时的重要性。通过对这些基础知识的理解,读者可以更好地掌握C++的面向对象编程。

目录

this指针

构造函数

拷贝构造函数


学习C++后,我们知道了C++是面向对象的,C语言是面向过程的。

C语言中结构体只能定义变量,但C++后,结构体不但可以定义变量,还能定义函数。

类的定义

class className
{
  //类体:由成员函数和成员变量组成
};//和结构体一样有分号

类的访问限制符和封装

C++如何封装呢?

用类将对象的属性和方法结合在一起,通过访问选择性将接口提供给外部的用户使用。

1. public修饰的成员在类外可以直接被访问
2. protected和private修饰的成员在类外不能直接被访问(此处protected和private是类似的)
3. 访问权限作用域从该访问限定符出现的位置开始直到下一个访问限定符出现时为止
4. class的默认访问权限为private,struct为public(因为struct要兼容C)

this指针

什么叫this指针?

C++编译器给每个“非动态的成员函数”增加了以一个隐藏的指针参数,让该指针指向当前对象(函数运行时调用该函数的对象),函数体中所有成员变量的操作,由该指针访问。

构造函数

构造函数是一个特殊的成员函数,名字和类名一样,用来保证每个数据成员都有一个合适的初始值,并且在对象的生命周期内只调用一次。(用来给数据成员初始化)

特征:

1.函数名与类名相同

2.无返回值

3.对象实例化时编译器自动调用对应的构造函数

4.构造函数可以重载

class Date
{
public:
  //1.无参构造函数
  Date()
  {}

  //2.带参构造函数
  Date(int year, int month,int day)
  {
    _year = year;
    _month = month;
    _day = day;
  }

private:
  int _year;
  int _month;
  int _day;
};

void Test()
{
  Date d1;  //调用1
  Date d2(2021.10.26);  //调用2
}

拷贝构造函数

什么是拷贝构造函数呢?

我们在创建对象时,想要创建一个与一个对象一模一样的新对象(相当于复制),这时就出现了拷贝构造函数。

它只有单个形参,该形参是对本类类型对象的引用(一般常用const修饰),在用已存在的类类型对象创建新对象时由编译器自动调用。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学c的长弓狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值