注册 登录
编程论坛 C++教室

初识构造函数

hmsabc 发布于 2010-08-03 16:15, 398 次点击
程序代码:
//构造函数的作用:主要是用来对成员函数赋初值
#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 的成员,就不能这种方法初始化了。这时,就要使用构造函数来对数据进行初始化。
构造函数是一种特殊的函数,与其他成员函数不同,不需要用户来调用它,而是在建立对象时自动执行。构造函数的名字
必须与类名同名,而不能由用户任意命名,以便编译系统能识别它并把它作为构造函数处理。它不具有任何类型,不返回任何值。
构造函数的功能是由用户定义的,用户根据初始化的要求设计函数体和函数参数。
*/
0 回复
1