定义了类,就相当于定义了一个数据类型。类与int、char等数据类型的使用方法是一样的。可以定义变量,数组和指针等。使用类定义的变量通常称为该类的对象。
对象的定义格式如下:
类名 对象名;
1.对象访问其成员
对象通过"."访问它的成员变量和成员函数。
对象名.成员变量 //访问对象的成员变量.
对象名.成员函数 //访问对象的成员函数.
例如下面的代码,创建一个日期类。
class Date //日期类
{
private:
int year;//年
int month;//月
int day;//日
public:
void set(int y, int m, int d)//赋值操作,在类声明中定义
{
year = y;
month = m;
day = d;
}
bool isLeapYear() //判断闰年,在类声明中定义
{
return year % 4 == 0 && year % 100 != 0 || year % 400 == 0;
}
void show();//输出日期
};
void Date::show()//输出日期,在类声明外定义
{
cout << year << "年" << month << "月" << day << "日" << endl;
}
int main()
{
Date today; //创建一个Date的对象,名字为today
today.set(2023,4,21); //today访问它的set函数
today.show(); //today访问它的show函数
if (today.isLeapYear())//today访问它的sisLeapYear函数
cout << "今年是闰年" << endl;
else
cout << "今年不是闰年" << endl;
return 0;
}
上述代码中,创建了类的对象today之后,系统就要为对象分配内存空间,用于存储对象成员。
2.对象的指针访问其成员
对象的指针通过"->"访问它的成员变量和成员函数。
对象的指针->成员变量
对象的指针->成员函数
如下代码:
int main()
{
Date today;
today.set(2023,4,21);
Date* pd = &today;
pd->show(); //对象指针通过->访问它的成员
return 0;
}
3.对象的引用访问其成员
对象定义一个引用变量,它们是共占同一段存储单元的,实际上它们是同一个对象,只是用不同的名字表示而已。因此完全可以通过引用变量来访问对象中的成员。
对象定义引用的方式:
类型 &引用变量名=对象名;
例如:通过对象的引用变量来访问对象的数据成员和成员函数。
#include<iostream>
using namespace std;
class Time //时间类
{
public :
int hour; //小时
int minute;//分钟
int second;//秒
void showTime();//显示时间
};
void Time::showTime()
{
cout<<hour<<"时"<<minute<<"分"<<second<<"秒"<<endl;
}
int main()
{
Time t1 = {16,48,56}; //创建Time对象t1
Time &t2=t1; //t2是t1的引用
t1.showTime(); //通过t1访问其成员函数
t2.showTime(); //通过引用变量访问对象的成员函数
return 0;
}
程序运行结果如下: