#include "pch.h"
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
class Clock {
public:
Clock(); //自定义的默认构造函数,调用的时候不用给实参
Clock(int newH, int newM, int newS); //构造函数
Clock(const Clock& clock); //复制构造函数
//Clock(const Clock& clock) = delete; //指示编译器不生成默认的复制构造函数
void setTime(int newH = 0, int newM = 0, int NewS = 0); //这里给形参默认值,后面调用setTime,没有给足3个参数,会被设置为0
void showTime();
private:
int hour, minute, second; //类内初始值,C++11新特性
Clock(const Clock& clock); //或者这样,不生成默认复制构造函数,C++98
};
/*
成员函数的实现
*/
//Clock:: 作用域限定符
//Clock::Clock() :hour(0), minute(0), second(0) {} //默认构造函数
//也是用初始化列表进行初始化,用自己设定的一个值来初始化
//委托构造函数实现的默认构造函数
Clock::Clock():Clock(0, 0, 0) {}
//构造函数
Clock::Clock(int newH, int newM, int newS) : hour(newH), minute(newM), second(newS) {}
//复制构造函数实现
Clock::Clock(const Clock &clock)
{
}
void Clock::setTime(int newH, int newM, int newS)
{
hour = newH;
minute = newM;
second = newS;
}
void Clock::showTime()
{
cout << hour << ":" << minute << ":" << second << endl;
}
int main()
{
Clock c; //调用无参的构造函数
Clock clock(8, 30, 0); //调用有参的构造函数
//clock.setTime(8, 30, 30);
c.showTime();
clock.showTime();
return 0;
}
【构造函数,默认构造函数,初始化列表,作用域限定符,访问控制,委托构造函数,复制构造函数】