C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: ユーザに提供するclass定義ファイルの中身問題


(過去ログ 125 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■74222 / inTopicNo.1)  ユーザに提供するclass定義ファイルの中身問題
  
□投稿者/ 初寒 (1回)-(2014/12/09(Tue) 11:22:38)

分類:[C/C++] 

ユーザに自分が作ったDLL提供する場合、
classメンバーを定義しているヘッダファイルも提供しなければならいないと思しますが、
もし、ユーザに提供するclassメンバ変数の一部を省略するのはダメでしょうか。
(それらのメンバー変数をユーザが使わないと仮定します)

DLL作成時に使ったclass定義中のメンバー変数の定義順番とユーザに提供するclassヘッダ中のメンバ変数の定義順番が違うのもダメでしょうか。
(内容はまったく同じですが、順番だけ異なるとします)


あくまで個別な実験結果に依存したくないで、理論的な視点からのご説明を求めたいです。

どうぞよろしくお願いいたします。

引用返信 編集キー/
■74228 / inTopicNo.2)  Re[1]: ユーザに提供するclass定義ファイルの中身問題
□投稿者/ 774RR (195回)-(2014/12/09(Tue) 12:09:19)
> DLL作成時に使ったclass定義中のメンバー変数の定義順番と
> ユーザに提供するclassヘッダ中のメンバ変数の定義順番が違うのもダメでしょうか。
C++ 言語仕様書 3.2 には ODR (One Definition Rule) というのがあって
同じ名前には同じ定義を与えなければならないことになっている。
順番が違う=定義が違うわけで、この規則違反となる=ダメ。

DLL 作成者と DLL ユーザとで違うものを使って(使わせて)バグが出たときどうやってデバッグするの?
誰の責任になるの?誰が責任取るの?そんな運用方針ありえない。

pimpl イディオム

http://bbs.wankuma.com/index.cgi?mode=al2&namber=73957
http://bbs.wankuma.com/index.cgi?mode=al2&namber=67764&KLOG=115

引用返信 編集キー/
■74244 / inTopicNo.3)  Re[2]: ユーザに提供するclass定義ファイルの中身問題
□投稿者/ 初寒 (2回)-(2014/12/10(Wed) 10:18:57)
お世話になっております。

「pimpl」ですね。私の質問の意図に良く当たりました。

本当に有難うございました。


解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -