c++でクラスを作り、そのクラスをコピー禁止にする際の書式についてです。
例えば、CTextureクラスを作ったとします。
コメントの「ここ」と書いてあるところにですが、
CTexture(CTexture&);
CTexture& operator=(CTexture&);
と書けばコピー禁止になると思いますが、
CTexture(const CTexture&);
CTexture& operator=(const CTexture&);
というふうに、引数にconstをつけるのとでは何が違うのでしょうか?
クラスのコピー禁止について
- tk-xleader
- 記事: 158
- 登録日時: 13年前
- 連絡を取る:
Re: クラスのコピー禁止について
コピー禁止のためコピーコンストラクタとコピー代入演算子をprivateに置く分には、引数にconstをつけるかどうかはどうでもいいです。コンストラクタと代入演算子がそれぞれコピーコンストラクタとコピー代入演算子となるには、const(volatileもですが)の有無は問われないです。明示的にオーバーロードしない限り、constの有無でコピーコンストラクタとコピー代入演算子がオーバーロードされるわけではないです。
以上のことはコピーコンストラクタとコピー代入演算子をdelete定義する場合も変わりません。
以上のことはコピーコンストラクタとコピー代入演算子をdelete定義する場合も変わりません。