C++之路——类与对象基本知识(一)

类与对象基本知识一

1类的定义

类是对具有相同属性和行为的一组对象的抽象,是面向对象程序设计(OOP)的核心
属性(attribute):数据(data)
行为(behavior):函数(function)、操作(operation)、方法(method)

//C++中定义类的一般格式:
class	类名
{
	private:		//访问权限修饰符
		私有数据成员和成员函数
	protected:
		保护数据成员和成员函数
	public:
		公有数据成员和成员函数	
}

2定义对象/访问成员

  1. 对象定义常用格式:
//类名	对象名1[,对象名2,...,对象名n];
CDate date1,date2;
  1. 访问对象成员的方式:
    (1)对象变量名.成员date1.Date_Year=2020;
    (2)对象指针->成员
//类对象公有数据成员的访问
class CDate
{
	private:
		int Date_Year;
		int	Date_Month;
		int Date_Day;
	public:
		void setDate(int,int,int);
		void Display();
		int GetYear();
};
  1. 成员函数的实现
    (1)定义在类内
    (2)定义在类外
返回类型		类名::成员函数名(形式参数表)
{
	//函数体

内联函数

  1. 在函数首部前增加关键字inline,该函数就被声明为内联函数。

  2. 当一个类的成员函数在类内实现时,则默认其为内联函数。

  3. 内联函数工作原理:
    (1)编译器在编译时会以内联函数的代码代替函数调用。
    (2)可以避免调用函数时的大量系统开销,从而加速代码的运行。
    (3)特点:代码简短、功能简单,不能有循环、选择分支语句、递归语句。

访问属性

  1. 类的任何成员都有访问属性,默认为private.
  2. 一个类并非一定要拥有全部三种访问属性的成员。
    在这里插入图片描述

this指针

C++中,每个成员函数都有一个特殊的隐含指针,称为this指针,用来存放当前主调对象的地址。

构造函数与析构函数

  1. 构造函数
    类的一种特殊的成员函数,在定义类的对象时,系统会自动调用析构函数来创建和初始化对象。
//函数形式
类名	([形式参数表]{
	......
}
//构造函数可以重载,有多种形式:
//1、系统默认构造函数以及无参构造函数
类名()
{}
/*注意:若用户没有定义构造函数,系统会为每个类自动提供一个不带形式参数的默认构造函数
		一旦用户自己定义了构造函数,系统不再提供默认的无参数构造函数*/
//2、具有默认参数值得构造函数
//3、复制构造函数:同类对象的常引用
类名(const 类名&对象名)
{
	....../*注意:
		若程序员没有定义复制构造函数,则系统会生成一个默认的复制构造函数
		将源对象参数的所有数据成员值,逐一赋值给新建的对象*/

构造函数初始化方法

CDate::CDate(int y,int m,int d):Date_Year(y),Date_Month(m),Date_Day(d)
{
	cout<<"Executing constructor..."<<endl;
}

复制构造函数在以下3种情况由系统自动调用
(1)由一个对象初始化定义另一个对象时。
(2)对象变量作为实参和形参的函数调用时。
(3)当函数返回对象变量值时。
在这里插入图片描述

  1. 析构函数
    类的一种特殊的成员函数,当对象生存周期结束,系统会自动调用析构函数来释放对象所占的内存资源。
~类名()
{
	//函数体
}

说明=
(1)析构函数不能重载,每个类只有一个析构函数。
(2)系统提供一个函数为空的默认析构函数。
(3)析构函数在撤消对象时自动执行,析构函数的调用顺序和构造函数的调用顺序正好相反。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值