0
点赞
收藏
分享

微信扫一扫

c++面向对象的笔记总结

zidea 2022-03-22 阅读 38
c++
#include<iostream>
using namespace std;
class Date
{
private:

	int year, month, day;//数据成员

public:
	Date()
	{
		year = 0;
		month = 0;
		day = 0;
		cout << "我在这!" << endl;
		cin >>year;
		cin >> month;
		cin >> day;
	}

	Date(int y, int m, int d)//=0是为了解决创建无参变量的问题
	{
		year = y;
		month = m;
		day = d;
		cout << "构造函数" << endl;
	}
	//构造函数
	//构造函数跟类名一样,前无类型,可以重载,实现数据成员初始化

	Date(const Date& t)
	{
		year = t.year;
		month = t.month;
		day = t.day;
		cout << "拷贝 构造函数" << endl;
	}

	~Date()
	{
		cout << "析构函数" << endl;
	}//撤销对象自动调用析构函数

	void show()//普通成员函数
	{
		cout << year << "\t" << month << "\t" << day << endl;
	}
};

int main()
{
	Date d1(2022,3,22);
	//cout << d.year << endl;//year是私有的,通过对象不能访问私有成员
	//可以通过show函数来显示它具体是多少

	d1.show();//此时不能再使用cout

	//Data d2 = d1;//此时通过已知函数构造未知函数会自动调用拷贝构造函数
	Date d2;//若我啥参数没传,上面相应的改,调用不带参数的构造函数
	//d2 = d1;//此时没有拷贝构造函数,用的是等号运算性质
	d2.show();

	system("pause");
	return 0;
}

课程链接:【复习100分钟拿下100分,你能做得到吗?【C++】(面向对象程序设计)(总复习)-哔哩哔哩】 https://b23.tv/g4g5vmn

以上是类和对象的对象类型代码

#include<iostream>
using namespace std;
class Date
{
private:

	int year, month, day;//数据成员

public:
	Date()
	{
		year = 0;
		month = 0;
		day = 0;
		
	}

	Date(int y, int m, int d)//=0是为了解决创建无参变量的问题
	{
		year = y;
		month = m;
		day = d;
		cout << "构造函数" << endl;
	}
	//构造函数
	//构造函数跟类名一样,前无类型,可以重载,实现数据成员初始化

	Date(const Date& t)
	{
		year = t.year;
		month = t.month;
		day = t.day;
		cout << "拷贝 构造函数" << endl;
	}

	~Date()
	{
		cout << "析构函数" << endl;
	}//撤销对象自动调用析构函数

	void show()//普通成员函数
	{
		cout << year << "\t" << month << "\t" << day << endl;
	}
};

int main()
{
	Date d1(2022, 3, 22);
	Date* p = &d1;
	//对象指针 Date类型的指针
	//指针不创建对象

	//三种等价形式
	d1.show();
	p->show();
	(*p).show();

	Date q[3] = { Date(1,1,1),Date(2,2,2),Date() };
	//分别的序号是0,1,2
	//撤销对象是倒着撤销的,是q2到q1到q0再回到d1
	//创建3个对象
	q[2].show();

	//引用是另外一个变量的别名
	Date & w = d1;
	//引用不创建对象,不会再开辟空间是d1的别名
	w.show();//往后w就是d1的意思

	Date* qq = new Date(1999, 12, 17);//动态的调用对象
	//new要创建对象
	qq->show();
	delete qq;//new来的一定delete


	system("pause");
	return 0;
}

 

举报

相关推荐

0 条评论