初识构造函数
程序代码:
//构造函数的作用:主要是用来对成员函数赋初值 #include<iostream> using namespace std; class Time { public: Time( ) //声明(注意加分号)或定义构造成员函数,函数名与类名相同 { hour=0; //利用构造函数对对象中的数据成员赋初值 minute=0; sec=0; } void set_time( ); //函数声明 void show_time( ); //函数声明 private: int hour; //私有成员数据之一 int minute; //私有成员数据之二 int sec; //私有成员数据之三 }; //类的声明,花括号外有分号,注意! void Time::set_time( ) //定义成员函数,向数据成员赋值 { cin >> hour; cin >> minute; cin >> sec; } void Time::show_time( ) //定义成员函数,输出数据成员的值 { cout << hour<<":"<<minute<<":"<<sec<<endl; } //Time::Time( ) // 类外定义构造函数 //{ // hour=0; // minute=0; // sec=0; //} int main( ) { Time t1; //建立对象 t1,同时调用构造函数 t1.Time( ),即是给 t1 对象赋初值 t1.set_time( ); //对 t1 的数据成员赋值 t1.show_time( ); //输出 t1 的数据成员的值 Time t2; //输出 t2 的数据成员的值,因为没有赋新值,所以其值应为初始值 t2.show_time( ); system("pause"); return 0; } /* 注意类的数据成员是不能在声明时初始化的,因为类并不是一个实体,并不占存储空间,因此不能容纳数据。 如果一个类中所有成员都是公用的,则可以在定义对象时对数据成员进行初始化。但是,如果数据成员是私有的,或者类中有 private 或 protected 的成员,就不能这种方法初始化了。这时,就要使用构造函数来对数据进行初始化。 构造函数是一种特殊的函数,与其他成员函数不同,不需要用户来调用它,而是在建立对象时自动执行。构造函数的名字 必须与类名同名,而不能由用户任意命名,以便编译系统能识别它并把它作为构造函数处理。它不具有任何类型,不返回任何值。 构造函数的功能是由用户定义的,用户根据初始化的要求设计函数体和函数参数。 */