|
デストラクタ
- デストラクタとは
- デストラクタは、オブジェクトがメモリから破棄される時に自動的に呼び出される特殊なメンバ関数
- デストラクタは、オーバーロードできない
- デストラクタを明示的に呼び出すことはできない
- 何らかの終了処理を記述する事が一般的
- 定義の仕方
- public: アクセス指定子で定義する
- 引数、戻り値を持たない関数として定義する
- チルダ (~) をクラス名の前に付けた関数名にする
- 呼び出されるタイミング (何れか)
- プログラムが終了するとき
- オブジェクトが宣言された関数を抜けるとき
- new 演算子で作成されたオブジェクトが、delete 演算子で破棄されるとき
- サンプル
-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
-
|
|
|
|
!
-
|
!
-
|
!
-
|
|
|
|
!
-
|
|
|
|
|
!
| #include <stdio.h>
class ChkFunc
{
public:
int num;
void ChkFunc (void);
void ~ChkFunc (void);
};
void
ChkFunc::ChkFunc (void)
{
printf ("コンストラクタが呼び出された。\n");
}
void
ChkFunc::~ChkFunc (void)
{
printf ("オブジェクト %d のデストラクタが呼び出された。\n", num);
}
void
MyFunc (void)
{
ChkFunc obj1;
obj1.num = 1;
return 0; }
void
main (void)
{
MyFunc ();
ChkFunc obj2; obj2.num = 2;
return; }
|
- 実行結果
コンストラクタが呼び出された。
オブジェクト 1 のデストラクタが呼び出された。
コンストラクタが呼び出された。
オブジェクト 2 のデストラクタが呼び出された。
参考
|
|