[過去ログ]
C++相談室 part164 (1002レス)
C++相談室 part164 http://mevius.5ch.net/test/read.cgi/tech/1683600652/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
487: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 163e-MI76) [sage] 2023/07/15(土) 21:58:55.40 ID:oCSaktaG0 >>481 場合による。 見せる相手が最初から限定的であるような場合はフレンドを宣言すればいい。 コンテナ系クラスとかは内部的にはたぶんノードを表すクラスとか も使ってると思うけどそういう感じで密接に関連がありつつ 他では使う可能性がないような強い関係性がある場合はフレンドにする。 データを保持するためだけの汎用クラスとして定義するならデータメンバは public にしてもかまわない。 std::pair とかはそうなってる。 もうちょっと疎結合にしたいときなら許したい操作だけをpublic なメンバ関数として公開すると思う。 既存のクラスを使いつつ外部に公開するのはサブセットにしたいという場合なら プライベート継承した上で公開したいメンバだけ using するという方法も取れる。 #include <iostream> #include <vector> struct Data : private std::vector<int> { using std::vector<int>::vector; using std::vector<int>::operator[]; using std::vector<int>::begin; using std::vector<int>::end; }; int main(void) { Data foo = {1, 2, 3}; for (int x : foo) { std::cout << x << std::endl; } } http://mevius.5ch.net/test/read.cgi/tech/1683600652/487
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 515 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.013s