一、定义类
知识点在注释里
//定义类
class Date
{
private:
int year;
int month;
int day;
//数据成员,默认为私有
public:
Date(){}//不带参数的构造函数
Date(int year,int month,int day)//带参数的构造函数
{
this->year=year;
this->month=month;
this->day=day;
}
/*这里可以缺省参数
Date(int year=2000,int month=1,int day=1)//带参数的构造函数
{
this->year=year;
this->month=month;
this->day=day;
}*/
Date(const Date&t) //拷贝构造函数,浅拷贝,系统默认会有
{
year=t.year;
month=t.month;
day=t.day;
}
/*
Date date1=(2004,6,5)
Date date2;
date2=date1;(错误)
Date date2=date1;(正确)
等号需要运算符重载才可以使用。
*/
~Date() //析构函数
{
cout<<"Distract"<<endl; //当调用析构函数的时候会输出distract。
}
void print() //普通成员函数
{
cout<<year<<"\t"<<month<<"\t"<<day<<endl;
}
};
二、定义对象
普通对象
//普通对象
Date d1(2004,6,5);
Date d2;
对象数组
//对象数组
Date arr[5];
arr[0].print();
对象指针
//对象指针
Date *p;
p=&d1;
p->print();
(*p).print();
引用
//引用
Date &w=d1;
w.print();
动态对象创建
//动态创建对象
Date *q=new Date(2008,8,8);
q->print();
delete q;
--完整代码--
#include<iostream>
using namespace std;
//定义类
class Date
{
private:
int year;
int month;
int day;
//数据成员,默认为私有
public:
Date():year(2000),month(1),day(1){}//不带参数的构造函数
Date(int year,int month,int day)//带参数的构造函数
{
this->year=year;
this->month=month;
this->day=day;
}
/*这里可以缺省参数
Date(int year=2000,int month=1,int day=1)//带参数的构造函数
{
this->year=year;
this->month=month;
this->day=day;
}*/
Date(const Date&t) //拷贝构造函数,浅拷贝,系统默认会有
{
year=t.year;
month=t.month;
day=t.day;
}
/*
Date data1=(2004,6,5)
Data data2;
data2=data1;(错误)
Data data2=data1;(正确)
等号需要运算符重载才可以使用。
*/
~Date() //析构函数
{
cout<<"Distract"<<endl; //当调用析构函数的时候会输出distract。
}
void print() //普通成员函数
{
cout<<year<<"\t"<<month<<"\t"<<day<<endl;
}
};
int main()
{
//普通对象
Date d1(2004,6,5);
Date d2;
//对象数组
Date arr[5];
arr[0].print();
//对象指针
Date *p;
p=&d1;
p->print();
(*p).print();
//引用
Date &w=d1;
w.print();
//动态创建对象
Date *q=new Date(2008,8,8);
q->print();
delete q;
return 0;
}