C++ Primer 学习笔记_23_类与数据抽象 (5)_初始化列表(const 和引用成员)、拷贝构造函数
一、构造函数初始化列表 1、推荐在构造函数初始化列表中进行初始化 (1)示例:更改之前的 Clock 代码
- //Clock.h
- //#pragma once
- #ifndef _CLOCK_H_#define _CLOCK_H_ class Clock {
- public: Clock(int hour = 0, int minute = 0, int second = 0);~Clock();
- void Display();
- void Update();
- int GetHour();
- int GetMinute();
- int GetSecond();
- void SetHour(int hour);
- void SetMinute(int minute);
- void SetSecond(int second);
- private: int hour_;
- int minute_;
- int second_;
- };#endif // _CLOCK_H_
- //Clock.cpp
- #include "Clock.h"#include < iostream > using namespace std;
- void Clock: :Display() {
- cout << hour_ << ":" << minute_ << ":" << second_ << endl;
- }
- Clock: :Clock(int hour
- /* =0 */
- , int minute
- /* =0 */
- , int second
- /* =0 */
- ) : hour_(hour),
- minute_(minute),
- second_(second) {
- //hour_ = hour;
- //minute_ = minute;
- //second_ = second;
- cout << "Clock::Clock" << endl;
- }
- Clock: :~Clock() {
- cout << "Clock::~Clock" << endl;
- }
- void Clock: :Update() {
- second_++;
- if (second_ == 60) {
- minute_++;
- second_ = 0;
- }
- if (minute_ == 60) {
- hour_++;
- minute_ = 0;
- }
- if (hour_ == 24) {
- hour_ = 0;
- }
- }
- int Clock: :GetHour() {
- return hour_;
- }
- int Clock: :GetMinute() {
- return minute_;
- }
- int Clock: :GetSecond() {
- return second_;
- }
- void Clock: :SetHour(int hour) {
- hour_ = hour;
- }
- void Clock: :SetMinute(int minute) {
- minute_ = minute;
- }
- void Clock: :SetSecond(int second) {
- second_ = second;
- }
- //01.cpp
- #include "Clock.h"int main(void) {
- Clock c(10, 10, 10);
- c.Display();
- return 0;
- }
来源: http://lib.csdn.net/article/cplusplus/45394