C++コンストラクション関数とコンストラクション関数の解析
34340 ワード
オブジェクトを作成する場合、データ・メンバーに初期値を割り当てるなど、初期化された作業が必要になることがよくあります.
クラスのデータ・メンバーは、クラスを宣言するときに初期化できません.クラス内のすべてのメンバーが共通である場合、オブジェクトを定義するときにデータ・メンバーを初期化できます.次のようになります.
クラスのデータ・メンバーは、クラスを宣言するときに初期化できません.クラス内のすべてのメンバーが共通である場合、オブジェクトを定義するときにデータ・メンバーを初期化できます.次のようになります.
class Time
{
public : //
hour;
minute;
sec;
};
Time t1={14,56,30}; // t1 14:56:30
, , 。 , , private protected , 。
(C++ ) ( 8.3 set_time )。 8.3 , set_time 。 , , , 。
,C++ (constructor) 。 , , , 。
, , 。 , 。 , 。
【 9.1】 8.3 。
- #include
- 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;
- }
- int main( )
- {
- Time t1;
- t1.set_time( );
- t1.show_time( );
- Time t2;
- t2.show_time( );
- return 0;
- }
:
10 25 54↙ ( t1 )
10:25:54 ( t1 、 、 )
0:0:0 ( t2 、 、 )
Time, 。 , 0。
( ), , , 。
, 。 4~7 :
Time( ); //
:
Time::Time( ) // , Time “::”
{
hour=0;
minute=0;
sec=0;
}
, :
- 。
- , , 。
- , 。
- , 。 , 。
- , C++ , , , 。
(destructor) , , “~” 。
C++ “~” , , 。 , 。
, :
- ( ), , , 。
- static , , main exit , static 。
- , ( main exit ) , 。
- new , delete , 。
, , 。 , , , 。
: , , 。 。 , 。
, , “ ”, 。 , , 。 , 。
, , “ ” 。 ,C++ , , 。 , 。
【 9.5】 C++ 。
- #include
- #include
- using namespace std;
- class Student // Student
- {
- public :
- Student(int n,string nam,char s ) //
- {
- num=n;
- name=nam;
- sex=s;
- cout<<"Constructor called."<<endl; //
- }
- ~Student( ) //
- {
- cout<<"Destructor called. The num is "<<num<<"."<<endl;
- } //
- void display( ) //
- {
- cout<<"num: "<<num<<endl;
- cout<<"name: "<<name<<endl;
- cout<<"sex: "<<sex<<endl<<endl;
- }
- private :
- int num;
- string name;
- char sex;
- };
-
- int main( )
- {
- Student stud1(10010,"Wang_li",'f'); // stud1
- stud1.display( ); // 1
- Student stud2(10011,"Zhang_fun",'m'); // stud2
- stud2.display( ); // 2
- return 0;
- }
プログラムの は のとおりです.
Constructor called. (stud 1のコンストラクタを )
num:10010(stud 1のdisplay を )
name:Wang_li
sex: f
Constructor called. (stud 2のコンストラクタを )
num:10011(stud 2のdisplay を )
name:Zhang_fun
sex:m
Destructor called. The num is 10011. (stud 2の を )
Destructor called. The num is 10010. (stud 1の を )