#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;
}