クラスのコピー禁止について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

トピックに返信する


答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: クラスのコピー禁止について

Re: クラスのコピー禁止について

#3

by haruto0909 » 7年前

tk-xleaderさん

なるほど、違いはないのですね。
ご回答ありがとうございました!

Re: クラスのコピー禁止について

#2

by tk-xleader » 7年前

コピー禁止のためコピーコンストラクタとコピー代入演算子をprivateに置く分には、引数にconstをつけるかどうかはどうでもいいです。コンストラクタと代入演算子がそれぞれコピーコンストラクタとコピー代入演算子となるには、const(volatileもですが)の有無は問われないです。明示的にオーバーロードしない限り、constの有無でコピーコンストラクタとコピー代入演算子がオーバーロードされるわけではないです。

以上のことはコピーコンストラクタとコピー代入演算子をdelete定義する場合も変わりません。

クラスのコピー禁止について

#1

by haruto0909 » 7年前

c++でクラスを作り、そのクラスをコピー禁止にする際の書式についてです。

例えば、CTextureクラスを作ったとします。

コード:


class CTexture
{
	// うんたらかんたら~
	
private:
	// ここ!
}

コメントの「ここ」と書いてあるところにですが、
CTexture(CTexture&);
CTexture& operator=(CTexture&);
と書けばコピー禁止になると思いますが、
CTexture(const CTexture&);
CTexture& operator=(const CTexture&);
というふうに、引数にconstをつけるのとでは何が違うのでしょうか?

ページトップ