3.1构造函数-三、构造函数的创建 说明:示例中的初始化表表示,用形参h的值初始化 数据成员neight,用w值初始化width,用len值初 始化length。这种初始化方法比较简练,可以直接 在类体中定义构造函数。 为Time类创建使用初始化表的构造函数 Time::Time(int h,int m,int s):hour(h),minute(m),second(s){} 15
说明:示例中的初始化表表示,用形参h的值初始化 数据成员height,用w值初始化width,用len值初 始化 length。这种初始化方法比较简练,可以直接 在类体中定义构造函数。 为Time类创建使用初始化表的构造函数 Time::Time(int h,int m,int s):hour(h),minute(m),second(s){} 3.1 构造函数-三、构造函数的创建 ⚫15
3.1构造函数-三、构造函数的创建 (4)构造函数的重载 一个类中,可以有多个构造函数,只要它们的参数 表不同,方便同类对像不同初始化的需要。 ① #include<iostream≥ ② using namespace std; class Time ④ public:Time(); Time(int,int,int); ⑤ void displayTime() ⑥ {cout<<"hour:"<<hour<<endl; ⑦ cout<<"minute:"<<minute<<endl; ⑧ cout<<"second:"<<second<<endl; ⑨ ⑩ private: ① int hour; int minute; int second; 16
(4)构造函数的重载 一个类中,可以有多个构造函数,只要它们的参数 表不同,方便同类对象不同初始化的需要。 ① #include<iostream> ② using namespace std; ③ class Time ④ { public: Time(); Time(int,int,int); ⑤ void displayTime() ⑥ {cout<<"hour:"<<hour<<endl; ⑦ cout<<"minute:"<<minute<<endl; ⑧ cout<<"second:"<<second<<endl; ⑨ } ⑩ private: ⑪ int hour; int minute; int second; ⑫ }; 3.1 构造函数-三、构造函数的创建 ⚫16
3.1构造函数-三、构造函数的创建 说明: (1)参数表为空的构造函数叫默认构造函数,一个类 中只能有一个默认函数,即只有一个构造函数参数表 为空。 (2)定义对象时,如果想用默认构造函数初始化,正 确的定义形式为:circle c2; 而不是:circle c2(): (3)一个类可以定义多个构造函数,一个对象只能用 其中一个来初始化。 17
说明: (1)参数表为空的构造函数叫默认构造函数,一个类 中只能有一个默认函数,即只有一个构造函数参数表 为空。 (2) 定义对象时,如果想用默认构造函数初始化,正 确的定义形式为:circle c2; 而不是:circle c2 ( ); (3)一个类可以定义多个构造函数,一个对象只能用 其中一个来初始化。 3.1 构造函数-三、构造函数的创建 ⚫17
(5)使用默认参数的构造函数 例5.6:将Time类的构造函数改用默认值的参数。 ① #include<iostream> ② using namespace std; ③ class Time ④ public: ⑤ Time(inth=10,int m=10,ints=10); ⑥ void displayTime() ⑦ {cout<<"hour:"<<hour<<endl; ⑧ cout<<"minute:"<<minute<<endl; ⑨ cout<<"second:"<<second<<endl; 四 private: int hour; int minute; int second;} ① Time:Time(inth,int m,int s):hour(h),minute(m),second(s){} ② int main() ® {Timet1; 四 t1.displayTime(); ⑤ Timet2(11,10,10); 18 ⑥ t2.displayTime();
(5)使用默认参数的构造函数 例5.6 :将Time类 的构造函数改用默认值的参数。 ① #include<iostream> ② using namespace std; ③ class Time ④ { public: ⑤ Time(int h=10,int m=10,int s=10); ⑥ void displayTime() ⑦ {cout<<"hour:"<<hour<<endl; ⑧ cout<<"minute:"<<minute<<endl; ⑨ cout<<"second:"<<second<<endl; } ⑩ private: int hour; int minute; int second; }; ⑪ Time::Time(int h,int m,int s):hour(h),minute(m),second(s){} ⑫ int main() ⑬ { Time t1; ⑭ t1.displayTime(); ⑮ Time t2(11,10,10); ⑯ t2.displayTime(); } ⚫18
3.1构造函数-三、构造函数的创建 (5)使用默认参数的构造函数 构造函数的参数既可以通过实参传送,也可 以指定为某些默认值。当用户不指定实参值时, 编译系统便将默认值作为形参值。 在实际应用中,常有一些默认值。如计数器 的默认值为0等,如果实际情况不是默认值,则 由用户另外指定。采用默认值,可以减少用户的 输入量。 19
(5)使用默认参数的构造函数 构造函数的参数既可以通过实参传送,也可 以指定为某些默认值。当用户不指定实参值时, 编译系统便将默认值作为形参值。 在实际应用中,常有一些默认值。如计数器 的默认值为0等,如果实际情况不是默认值,则 由用户另外指定。采用默认值,可以减少用户的 输入量。 3.1 构造函数-三、构造函数的创建 ⚫19