こんにちは。
質問が二つあります。
たまたまかもしれませんが。
ライブラリ(glewとか)のヘッダーファイルのほとんどがコールバック関数として宣言されている機会をよく目にするのですが、何か利点でもあるのでしょうか?
また、ライブラリヘッダー内ではクラスを宣言してもいいのでしょうか?
ライブラリ内での変数名を知られたくないなどの理由でクラスを使った設計が敬遠されているとかですかね。
コールバックで宣言されていることが多い
C
1 2/* 3こんな形で書かれている関数をよく目にする。 4ほとんどのシチュエーションでこの宣言を直に呼び出すことが多い。 5*/ 6typedef void (*func)(int val); 7func something(int val); 8 9/* 10それなら別にこうでもいいんじゃないか 11*/ 12void something(int val); 13 14 15
ちなみにクラス宣言してはいけない理由でもあるのでしょうか
C++
1/* 2ライブラリ内でクラス宣言してはいけない理由ってあるのだろうか。 3*/ 4class A{ 5private: 6 int a_val; 7 ... 8}; 9 10/* 11ライブラリ使用元で基底クラスとして宣言したいのだが... 12*/ 13class B : public A {}; 14
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/17 06:48 編集