constructor および destructor 関数属性は、データを初期化したり、プログラムの実行中に
暗黙的に使用されるストレージを解放したりする関数を作成する機能を提供します。
constructor 関数属性が適用されている関数は、
実行が main() に入る前に自動的に呼び出されます。
同様に、destructor 属性が適用されている関数は、
exit() を呼び出した後、または main() が完了した後に自動的に
呼び出されます。
constructor または destructor 関数が自動的に呼び出されるときは、関数の戻り値は無視され、関数のパラメーターは どれも定義されません。
constructor および destructor 関数属性は、関数属性の一般的な構文に従います。 プロトタイプ宣言では、属性指定子は関数宣言子に従い、関数定義では宣言子に先行します。 C++ では、関数定義の関数宣言子の前の属性は受 け入れられません。以下のダイアグラムで、関数属性の サポートされる形式が示されます。
>>-__attribute__--((--+-constructor-----+--))--function_name--(--引き数--)->< +-destructor------+ +-__constructor__-+ '-__destructor__--'
constructor または destructor 関数属性を含む関数宣言は、その他の宣言のすべてと一致していなければなりません。
関連参照