プロが教える店舗&オフィスのセキュリティ対策術

こんにちは。C++の勉強を最近始めました。

メンバ関数の引数に、STL(queue)を使おうとしています。
以下のように、参照にして使おうと思っています。

int test01::method(queue<int>& q)
{
return 0;
}

ですが、コンパイルしようとすると、
「識別子 'queue' がシンタックスエラーを起こしました。」
と言われてエラーになってしまいます・・・。
(他の箇所でqueueを使っていますが、そこではエラーは出ないので、
ヘッダファイルや名前空間はちゃんと指定できていると思います)

STLに関する情報を集めてみたのですが、
引数にして使った例を見つけることができませんでした。
シンタックスエラーなので、文法や構文などが正しくないのだと思うのですが、
関数の引数にそもそもSTLを指定できないのか、
コーディングの仕方が間違っているのか、判断ができません。

どのようにしたら、引数に指定できるのでしょうか?
ご存知の方がいらしたら、おしえていただきたいです。
よろしくおねがいします。

A 回答 (2件)

プログラムを見せてください。



queue<int>& q
ここの部分ではコンパイルエラーは出ませんでしたので、
指定は間違ってないと思いますよ。
(自分は STL を引数によく使ってます)
    • good
    • 0
この回答へのお礼

試していただいて済みません。

原因としては、using namespace std;を指定していませんでした。
名前空間の指定とか、スコープを必要最低限に絞っていたのですが、
絞りすぎたみたいです・・・。

今度質問させてもらうときは、
一部分ではなく、もっと全体的なプログラムを書こうと思います。

ありがとうございました。

お礼日時:2008/11/24 18:08

前後がないのでなんともいえないんだけど,


・一応 std::queue にしてみる
ということは考えられるかな. まあ, かっこの対応がとれてないとかいう可能性も実際にはあるんだけど.
    • good
    • 0
この回答へのお礼

うひゃー、ごめんなさい!
using namespace std;を指定したら、コンパイルできましたっ!

メンバ関数の定義と宣言を、別ファイルで行なっているのですが、
そこだけ、
using namespace std;
を指定していませんでした・・・。

ありがとうございました。

お礼日時:2008/11/24 18:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!