0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

C++: operator delete[]とは?

Last updated at Posted at 2025-12-16

初めに

演算子オーバーロードのdelete[]とはなにか。

演算子オーバーロードとは

標準/ユーザ定義のクラスや構造体に対して、演算子の動作をオーバーロードできる。

ClassName operator=(argument);

上記のように記述できる。

オーバーロードなので新しい演算子は定義できない。

演算子オーバーロードは通常のメンバ関数と同様に扱われ、メンバ関数として定義された場合は継承される

friendで宣言することで、そのクラスのメンバでなくてもprivate/protectedメンバ変数にアクセスできる。

オーバーロードできる演算子一覧

B: バイナリ演算子
U: 単項演算子

operator タイプ
, B
! U
!= B
% B
%= B
& B
& U
&& B
&= B
() -
() U
* B
* U
*= B
+ B
+ U
++ U
+= B
- B
- U
-- U
-= B
-> B
->* B
/ B
/= B
< B
<< B
<<= B
<= B
= B
== B
> B
>= B
>> B
>>= B
[] -
^ B
^= B
| B
|= B
|| B
~ U
delete -
new -

オーバーロード不可能な演算子一覧

operator 名前
. メンバー選択
.* メンバーへのポインタ選択
:: スコープ解決
?: 条件
# プリプロセッサによる文字列への変換
## プリプロセッサによる連結

delete[]とは

operator new / operator delete
operator new[] / operator delete[]
はメモリ確保・解放の挙動をカスタマイズするためにオーバーロードできる。

delete[]new[]で動的に確保した配列のメモリを開放するための演算子。
deleteは単一オブジェクト(配列の先頭)のディストラクタを呼ぶ。
delete[]は配列の各要素に対してディストラクタを呼ぶ。

参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?