// 时钟类Clock // 相较于教材,做了以下微调整: // 1. 在构造函数的写法上,采用了业界更通用的初始化列表方式 // 2. 对于时钟显示的格式,使用操控符函数,控制其输出格式 #include <iostream> #include <iomanip> using std::cout; using std::endl; // 定义时钟类Clock class Clock { public: Clock(int h = 0, int m = 0, int s = 0); Clock(const Clock& t); ~Clock() = default; void set_time(int h, int m = 0, int s = 0); void show_time() const; private: int hour, minute, second; }; // 类Clock实现 Clock::Clock(int h, int m, int s): hour{h}, minute{m}, second{s} { cout << "constructor called" << endl; } Clock::Clock(const Clock& t): hour{t.hour}, minute{t.minute}, second{t.second} { cout << "copy constructor called" << endl; } void Clock::set_time(int h, int m, int s) { hour = h; minute = m; second = s; } void Clock::show_time() const { using std::setw; using std::setfill; cout << setfill('0') << setw(2) << hour << ":" << setw(2) << minute << ":" << setw(2) << second << endl; } // 普通函数定义 Clock reset() { return Clock(0, 0, 0); // 构造函数被调用 } int main() { Clock c1(12, 0, 5); // 构造函数被调用 c1.show_time(); c1 = reset(); // 理论上:复制构造函数被调用 c1.show_time(); Clock c2(c1); // 复制构造函数被调用 c2.set_time(6); c2.show_time(); }
标签:const,cout,Clock,int,second,实验,时钟 From: https://www.cnblogs.com/wzw252/p/16740401.html