は、私はCで次のようになりますPIMPL-イディオムについて知っPIMPL-イディオム対の実装を非表示にするには:型キャストの構造体は、
型キャストを持つしかし// foobar.h
struct FooBar {
char *someString;
struct FooBarImpl *pImpl;
};
// foobar.c
struct FooBarImpl {
char *hiddenString;
};
私は不透明なポインタを取り除くとオッズを減らすことができますその誰かが実装で台無し:FooBarの上で操作を行っている任意の関数は単に「プライベート」のメンバーへのアクセスを得るためにFooBarImplに型キャストでしょう。後者の場合には
// foobar.h
struct FooBar {
char *someString
};
// foobar.c
struct FooBarImpl {
// FooBar members
char *someString
// FooBarImpl members
char *hiddenString
};
。
FooBarにいくつかのメンバーを追加するが、FooBarImplに同じメンバーを追加する人がいれば、これがどのように問題になるかを見ることができます。しかし、私の場合、FooBarにはメンバーが1人しか含まれていないため、変更はほとんどありません。
実装の詳細を隠そうとしている場合、これは良い習慣とみなすか、または単にpimpl-idiomに固執すべきですか?
ありがとうございます。