C++中的类

C++中添加了类,使得C++具有了面向对象编程的开始。这里主要是如何定义一个C++中的类和如何访问一个实体类对象。

#include<iostream>
using namespace std;

/**
建立一个类的规范
成员变量不能初始化,在构造函数中初始化,和java一样,构造函数可以有多个重载
类对象不需要像java一样new 对象;只要在Time t;就相当于new 了对象,构造函数会由系统自动调用
类中声明的一般方法,我们在类外定义,保证类简洁性。

对象的动态建立和释放;
Time *t = new Time(1,3,2);
delete t;

静态数据成员,static 

友元;有元函数
*/
class Time{
private:    //定义私有成员变量
	int hour;
	int minute;
public:
	int sec;

public:   //在类内定义构造函数,并初始化成员变量0
	Time(){
		hour = 0;
		minute = 0;
		sec = 0;
	}

	//声明有参数构造函数,在类外定义
	Time(int hour,int minute,int sec);

	//系统默认会自动添加上实现为空的析构函数,它是类的遗言
	//我们重写析构函数是为了完成对象释放前的一次操作,如资源释放
	~Time(){
		cout << "析构函数\n";

	}

	//声明一般方法
	void set_time(int hour,int minute,int sec);
	void getTime();

	//类内部定义一般函数,this是指向该类的指针
	void changeHour(int hour){
		this->hour = hour;
	}
};

//构造函数可以是有参数的,也可以在类外定义
Time::Time(int h,int m,int s){
	hour = h;
	minute = m;
	sec = s;
}

//类外定义一般方法
void Time::set_time(int _hour,int _minute,int _sec){
	hour = _hour;
	minute = _minute;
	sec = _sec;
}

void Time::getTime() {
	cout << hour <<":"<<minute<<":"<< sec<<"\n";
}

/***********************程序入口***************************************/
//对象数组Time times[2];
int main(){

	bool flag = true;
	if (flag){
		Time t;   //自动使用无参数构造函数生成t对象;局部t,调用完后,自动执行析构函数
		t.set_time(19, 30, 55);
		t.getTime();
	}

	Time mx(23,12,26);
	mx.getTime();
	mx.set_time(23,12,27);
	mx.getTime();

	//定义对象数组
	Time times[2] = {
		Time(11,12,44),
		Time(6, 12,44)
	};
	times[0].getTime();
	times[1].getTime();

	//对象指针
	int *p1 = ×[1].sec;
	cout << *p1<<"\n";

	Time *p2 = ×[1];  //对象指针p2指向times[1]
	p2->getTime();    //调用times[1]中的公有方法和成员
	cout << p2->sec<<"\n";

	//定义一个函数指针
	void(Time::*p3)();
	p3 = &Time::getTime;   //p3指向类Time中的getTime方法
	(times[1].*p3)();     //调用times[1]getTime方法

	times[1].changeHour(7);
	times[1].getTime();

	return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值