C++文法学習ノート9:コンストラクション関数詳細、explicit、初期化リスト

16426 ワード

インスタンスコード:

#include 
#include 
#include 

using namespace std;

class Time {

private:
	void initMillTime(int mls) {
		Millisecond = mls; 
	}

	int Millisecond; //  
public:
	int Hour; //  
	int Minute;//  
	int Second;//  


	//    
	Time(int temphour, int tmpmin, int tmpsec) {
		Hour = temphour;
		Minute = tmpmin;
		Second = tmpsec;
		initMillTime(0);

		cout << "       Time(int temphour, int tmpmin, int tmpsec)" << endl;
	}

	Time() {
		Hour = 12;
		Minute = 59;
		Second = 59;
		initMillTime(50);

		cout << "       Time()" << endl;
	}


	Time(int temphour) {
		Hour = temphour;
		Minute = 59;
		Second = 59;
		initMillTime(50);

		cout << "       Time(int temphour)" << endl;
	}

	explicit Time(int temphour, int tmpmin) {
		Hour = temphour;
		Minute = tmpmin;
		Second = 59;
		initMillTime(50);

		cout << "       Time(int temphour, int tmpmin)" << endl;
	}


	Time(int temphour, int tmpmin, int tmpsec, int tmpmill) 
		: Hour(temphour), Minute(tmpmin), Second(tmpsec), Millisecond(tmpmill) { //         

		cout << "       Time(int temphour, int tmpmin, int tmpsec, int tmpmill)" << endl;
	}
};






int main() {

	//Time myTime
	// :     
	//   ,          ,         ,           ,                  。
	//      ,  “    ”,              ,            :                    。
	//(1)          。            。
	//(2)            ,        。
	//(3)      ,          public,           ,            ,             public  ,
	//              。

	//(4)             ,                  
	Time myTime = Time(12, 13, 52);//     
	Time myTime2(12, 13, 52); 
	Time myTime3 = Time{ 12, 13, 52 };
	Time myTime4{ 12, 13, 52 };
	Time myTime5 = { 12, 13, 52 };

	// :       
	//             ,                   。                   ,        ,        。
	Time myTime11 = Time();//     
	Time myTime12; //Time myTime12();
	Time myTime13 = Time{};
	Time myTime14{};
	Time myTime15 = {};

	//    
	Time myTime20;//        
	//  4                  ,           
	Time myTime22 = myTime20;
	Time myTime23(myTime20);
	Time myTime24{ myTime20 };
	Time myTime25 = { myTime20 };

	// :      
	//  :
	//(1)             ,           。
	//(2)                  ,                  ,             ,               


	// :     explicit
	//    ,                   
	Time myTime40 = 14;  //         Time(int temphour)             , 14           Time  
	Time myTime41 = (12, 13, 14, 15);//         Time(int temphour)

	Time myTime50 = { 16 };//          ,     16,                  
	Time myTime51 = 16; //       ,           

	//        ,                  ?
	//  ,           explicit,                     
	Time myTime51 = Time(12, 13);//     
	Time myTime52(12, 13);
	Time myTime53 = Time{ 12, 13 };
	Time myTime54{ 12, 13 };
	// Time myTime55 = { 12, 13 }; //           explicit                 --        


	//          ,      explicit,        (     )。


	// :          (        )
	//(1)     
	//(2)     
	Time myTime = Time(12, 13, 52, 0);


	system("pause");
	return 0;
}