C++文法学習ノート9:コンストラクション関数詳細、explicit、初期化リスト
インスタンスコード:
#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;
}