クラスの外部からクラスのプライベート メンバーにアクセスする方法があるかどうかを知りたいです。私の問題を説明します。
クラスの定義とそのプライベート メンバーおよびパブリック関数 (エクスポートしたいのはこれらだけです) を含む .hpp ファイルがあります。対応する .cpp では、.hpp で定義されたクラスのプライベート メンバーにアクセスする必要がある "サポート" 関数を使用する必要があります。
ここに私のコードの一部があります:
--- .hpp ---
namespace vision {
class CameraAcquisition {
/* MEMBERS */
CvSize size;
CvCapture *device;
CvScalar hsv_min,hsv_min2,hsv_max,hsv_max2;
/* METHODS */
public:
CameraAcquisition();
~CameraAcquisition();
int findBall();
};
}
--- .cpp ---
#include "CameraAcquisition.hpp"
using namespace vision;
IplImage *grabFrame() {
// code here
}
IplImage *convertToHSV(IplImage *origin) {
// code here
}
IplImage *calculateThresholdedImage(IplImage *converted) {
// code here
}
必要なのは、これら 3 つの関数が CameraAcquisition クラスのメンバーにアクセスすることです。それを行う方法はありますか?任意の提案をいただければ幸いです。皆さん、ありがとうございました
EDIT 申し訳ありませんが、ここで重要な情報を忘れていました。ソース ファイルでは、findBall() がこれらのメソッドを呼び出す必要があります。コードを読みやすくするために、これらのメソッドを定義しました。それらをエクスポートしたくないので、クラス定義でこれらのメソッドを宣言することはできません。それらを「プライベート」ブロックで宣言すると、すべて正常に機能しますが、おそらくそれは正しくありません(ヘッダーファイルにプライベートメソッドを提供する意味がわかりません.