質問: ### 前提・実現したいこと 非静的メンバ関数の扱いがわかりません。 ヘッダー中に含まれるpix2angという関数を使いたいのですが"pix2ang was not declared in this scope"と言われます。 しかしヘッダーの中身を覗くとpix2angという関数が宣言されており途方に暮れています。 ### 発生している問題・エラーメッセージ ``` [@localhost Healpixtest]$ g++ Healtest5.cc -lhealpix_cxx -lcxxsupport -lsharp -lfftpack -lc_utils -lcfitsio Healtest5.cc: 関数 ‘int main()’ 内: Healtest5.cc:11:14: エラー: ‘pix2ang’ was not declared in this scope pnt=pix2ang(1); ^ [@localhost Healpixtest]$ ``` ### 該当のソースコード ``` #include #include #include "healpix_base.h" using namespace std; int main(){ int pix; Healpix_Base (6, RING); pointing pnt(double theta,double phi); pnt=pix2ang(1); cout << pnt <
回答: おそらく次のコードで動くと思います。 ``` Healpix_Base h(6, RING); // Healpix_Base 型変数 h の定義です pointing pnt = h.pix2ang(1); ``` クラスのメンバ関数(変数)を呼び出すときは、メンバアクセス演算子を使います。 C++の基礎 : クラスなどを参照してください。