多くのRAIIサンプルクラスがファイルハンドルをラップしているのがわかります。
私はこれらの例を運がなくても文字ポインタに適合させようとしました。
私が使用しているライブラリには、文字ポインタのアドレスを受け取る関数があります(get_me_a_string(char ** x)のように宣言されています)。これらの関数は、その文字ポインタにメモリを割り当て、ライブラリのエンドユーザーに任せて、独自のコードでクリーンアップします。
だから、私はこのようなコードを持っています...
char* a = NULL;
char* b = NULL;
char* c = NULL;
get_me_a_string(&a);
if(a == NULL){
return;
}
get_me_a_beer(&b);
if(b == NULL){
if(a != NULL){
free(a);
}
return;
}
get_me_something(&c);
if(c == NULL){
if(a != NULL){
free(a);
}
if(b != NULL){
free(b);
}
return;
}
if(a != NULL){
free(a);
}
if(b != NULL){
free(b);
}
if(a != NULL){
free(b);
}
RAIIは私が上で持っているこの混乱の答えであるように思えます。誰かがFILE*ではなくchar*をラップする単純なC++クラスを提供できますか?
ありがとう