• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C++でこんなクラスを作りたい。)

C++でクラスを作成し、関数をグループ化する方法

このQ&Aのポイント
  • C++初学者がわからないことを質問しています。わかりやすいタイトルと要約文を作成しましょう。
  • C++初学者が複数の関数をグループ化するためのクラスを作成したいと質問しています。クラスのメンバ変数とメンバ関数の例も含まれています。
  • C++でコンパイルエラーが発生している質問です。mixtureクラスに関連するエラーについても詳細に説明されています。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

> vec.push_back(va_arg(ap,component&); component& を compoment* とすればコンパイルできました。

R-gray
質問者

お礼

・・・できてしまいました。おぉぉぉ。こんなに悩んだのは何だったのでしょう。 追加で1つ質問させてください。 va_argの引数を直すのと、あと自分でもう1つ治したのが ヘッダファイルにおけるvector<component*> vec; の宣言をstd::vector<component*> vec;にしたところです。 それにしたら長らく悩まされていた ISO C++ forbids declaration of `vector' with notype というエラーが消えました。これは何故だったのでしょうか。 よろしくお願いいたします。

その他の回答 (2)

回答No.3

> using namespaceはしないほうが良い 正解です。

R-gray
質問者

お礼

やはりそうなのですか。もっと勉強いたします。ありがとうございました。

回答No.2

> ヘッダファイルにおけるvector<component*> vec; > の宣言をstd::vector<component*> vec;にしたところです。 g++使いじゃないのでよくわかんないです。 using namespace std; してなかった、とか?

R-gray
質問者

お礼

確かにヘッダファイルではusing namespaceしていませんでした。 (何かでヘッダファイルであまりusing namespaceはしないほうが良いと見た気がするので。) てっきりmain関数のあるファイルのほうでusing namespace std;をしていたので ヘッダファイルでは書いていませんでした。

関連するQ&A