質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
include

あるファイルで定義された関数や処理を、別のファイル上でも使用できるようにするプロセスをincludeと呼びます。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

696閲覧

非静的メンバ関数の扱い方

mamiyasinzi

総合スコア13

include

あるファイルで定義された関数や処理を、別のファイル上でも使用できるようにするプロセスをincludeと呼びます。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2019/01/17 10:01

前提・実現したいこと

非静的メンバ関数の扱いがわかりません。
ヘッダー中に含まれる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]$

該当のソースコード

c++

1#include <stdio.h> 2#include <iostream> 3#include "healpix_base.h" 4using namespace std; 5 6 7int main(){ 8int pix; 9Healpix_Base (6, RING); 10pointing pnt(double theta,double phi); 11pnt=pix2ang(1); 12cout << pnt <<endl; 13 14 15} 16 17

試したこと

pix2angの前にint型のオブジェクトをつけるとオブジェクトの型が正しくないと言われました。

補足情報(FW/ツールのバージョンなど)

healpix_Base.hの中身が書かれたサイトです。
https://healpix.jpl.nasa.gov/html/Healpix_cxx/healpix__base_8h-source.html#l00176

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

おそらく次のコードで動くと思います。

cpp

1Healpix_Base h(6, RING); // Healpix_Base 型変数 h の定義です 2pointing pnt = h.pix2ang(1);

クラスのメンバ関数(変数)を呼び出すときは、メンバアクセス演算子を使います。

C++の基礎 : クラスなどを参照してください。

投稿2019/01/17 11:28

alphya

総合スコア124

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mamiyasinzi

2019/01/17 11:47

御回答ありがとうございます。 無事通りました。 なるほど、pix2angという関数に対する被演算子の名前が指定されていなかったということですね。 ありがとうございました。
alphya

2019/01/17 11:51

お役に立てて何よりです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問