0
点赞
收藏
分享

微信扫一扫

PDF高效编辑器,一键转换将PDF文件转换成HTML文件,开启文件处理新篇章!

代码敲到深夜 2024-05-01 阅读 7

在这里插入图片描述

文章目录

📙前言

📙1、面向过程与面向对象的初步认识

📙2、类的引入

struct Stack
{
	int* a;
	int top;
	int capacity;
};
//函数只能写在外面
void StackInit(Stack* st)
{
	//...
}

struct Stack
{
	int* a;
	int top;
	int capacity;

	void Init();
};

📙3、类的定义

class className
{
	//类体:由成员函数和成员变量组成
};
//人
class Person
{
public:
	//打印信息
	void print()
	{
		cout << (*_name) << "-" << (*_sex) << "-" << _age << endl;
	}

private:
	char* _name;//名字
	char* _sex;//性别
	int _age;//年龄
};
class Date
{
public:
	void Init(int year, int month, int day)
	{
		//这样你怎么分清楚哪个是类的成员变量,哪个是形参?
		year = year;
		month = month;
		day = day;
	}

private:
	int year;
	int month;
	int day;
};
class Date
{
public:
	void Init(int year, int month, int day)
	{
		_year = year;
		_month = month;
		_day = day;
	}

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

📙4、类的访问限定符

📙5、类的作用域

class Date
{
//{}内,为类的作用域
private:
	int _year;
	int _month;
	int _day;
};
//{}外,不是类的作用域

class Date
{
public:
	void Init(int year, int month, int day);

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

void Date::Init(int year, int month, int day)
{
	_year = year;
	_month = month;
	_day = day;
}

📙6、类的实例化

class Date
{
public:
	void Init(int year, int month, int day);

private:
	int _year;
	int _month;
	int _day;
};
class Date
{
public:
	void Init(int year, int month, int day)
	{
		_year = year;
		_month = month;
		_day = day;
	}

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

int main()
{
	//这样就是类的实例化
	//C++把d1叫作对象
	Date d1;

	return 0;
}
class Date
{
public:
	void Init(int year, int month, int day)
	{
		_year = year;
		_month = month;
		_day = day;
	}

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

int main()
{
	//一个类可以实例化多个对象
	Date d1;
	Date d2;
	Date d3;
	Date d4;
	Date d5;

	return 0;
}

📙7、类的对象模型

📋7.1、类对象的存储方式

class Date
{
public:
	void Init(int year, int month, int day)
	{
		_year = year;
		_month = month;
		_day = day;
	}

private:
	int _year;
	int _month;
	int _day;
};
//空类又是多少字节呢?
class Stack
{};

📙8、this指针

📋8.1、this指针的引出

#include<iostream>
using namespace std;

class Date
{
public:
	void Init(int year, int month, int day)
	{
		_year = year;
		_month = month;
		_day = day;
	}

	void Print()
	{
		cout << _year << "-" << _month << "-" << _day << endl;
	}

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

int main()
{
	Date d1;
	Date d2;
	d1.Init(2024, 5, 1);
	d2.Init(2024, 5, 5);

	d1.Print();
	d2.Print();

	return 0;
}

📋8.2、this指针的特性

Date* const this
#include<iostream>
using namespace std;

class Date
{
public:
	void Init(int year, int month, int day)
	{
		_year = year;
		_month = month;
		_day = day;
	}

	//语法上的转换 void Print() ==> void Print(Date* this)
	void Print()
	{
		cout << _year << "-" << _month << "-" << _day << endl;
	}

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

int main()
{

	Date d1;
	Date d2;
	d1.Init(2024, 5, 1);
	d2.Init(2024, 5, 5);

	d1.Print();//语法上的转换d1.Print(); ==> d1.Print(&d1);
	d2.Print();//d2.Print(); ==> d2.Print(&d2);

	return 0;
}
举报

相关推荐

0 条评论