C++中最重要的就是类与对象了:
类就相似于c语言中的结构体,但类的意思是现实世界里一类事物的统称,相当于数据库里的实体。类分为数据(成员变量)和程序(成员函数)。
数据相当于实体具有的属性,对象是实体的一个实例相当于数据库的元组。
类的三大特性:封装,继承,多态。类有三种访问限定符:public(公有) protect(保护) private(私有)体现了类的封装性。
类的四个默认成员函数:构造函数,拷贝构造函数,析构函数,运算符重载函数。
#include <iostream>
using namespace std;
class Date //定义一个日期类
{
public:
void Display()//打印日期
{
cout << _year << "." << _month << "." << _day << endl;
}
Date(int year = 1900, int month = 1, int day = 1)//1.构造函数
:_year(year) //初始化列表
,_month(month)
,_day(day)
{
cout << "InitDate->" << endl;
_year = year;
_month = month;
_day = day;
}
Date(Date& d) //2.拷贝构造函数
{
cout << "CopyDate->" << endl;
_year = d._year;
_month = d._month;
_day = d._day;
}
~Date() //3.析构函数
{
cout << "FreeDate<->" << endl;
}
// 4.运算符的重载函数
bool operator==(const Date& d) //等于运算符的重载
{
return _year == d._year
&& _month == d._month
&& _day == d._day;
}
Date& operator=(const Date& d) //赋值运算符的重载
{
if (this != &d)
{
_year = d._year;
_month = d._month;
_day = d._day;
}
return *this;
}
private:
int _year;
int _month;
int _day;
};
//类的实例化 对象
int main()
{
Date d1(2017, 1, 1);//构造函数 初始化
Date d2;
d2 = d1;
cout << (d1 == d2) << endl;
Date().Display();//匿名对象,生命周期为一行
return 0;
}