c++--类

                       **类**

以一个小时钟的例子,解释
类的和对象的定义
构造函数的基本概念
委托构造函数

#include<iostream>
using namespace std;
class clock
{
public://可以被看到的数据或函数
	clock(int newH, int newM, int newS);//构造函数
	clock();//重载一个默认构造函数,
	//如果自己一个构造函数都没有,系统会帮你构造一个默认的构造函数的
	void settime(int newH = 0, int newM = 0, int newS = 0);
	void showetime();
private://类内部的东西,不能被看见
	int hour, minute, second;
};//完成一个类的定义

void clock::settime(int newH, int newM, int newS)
{
	hour = newH;
	minute = newM;
	second = newS;
}
void clock::showetime()
{cout << hour <<":"<< minute <<":"<< second<<endl;}

clock::clock(int newH, int newM, int newS) :
	hour(newH), minute(newM), second(newS){}

clock::clock():hour(0), minute(0), second(0){}
//clock::clock() : clock(0, 0, 0) {} 新标准也可以这样定义clock(),这是委托了第一个构造函数


//在类外面定义类中函数



int main()
{
	clock c1(11,47,0);//有构造函数直接在定义对象时设计时间,不用调用settime函数,而是调用第一种构造函数
	clock c2;//也调用构造函数,不过是第二个,根据参数表的匹配(无参数)
	c1.showetime();
	c2.showetime();
	return 0;
}

类分私有成员(private):允许访问,紧跟在类名后面定义时,可以省略private。
公有成员 (public):无法访问。
保护成员 (protected):与私有成员很像,在派生和继承可以看出区别。

                    **构造函数:**

函数名与类名相同
不能有返回值
可无参数
可以时内联函数
可重载
可带默认值

    clock(int newH, int newM, int newS);//构造函数
	clock();//重载一个默认构造函数,

定义时自动调用

clock c1(11,47,0);

但是不能出现多个默认构造函数,因为两个都可以用,系统不知道用哪个如

clock();
clock(newH=0;newM=0;newS=0)//这个也可以是默认构造函数,就算不初始化,这个也可以调用

构造函数时必须的,如果不声明 ,编译器会帮我们自己搞一个默认构造函数,这个函数参数表是空的

                  **委托构造函数**

一个构造函数可以委托另一个构造函数进行初始化

clock::clock() : clock(0, 0, 0) {}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值