次の形式のヘッダーファイルClass2.hppに関数があります。
class Class2{
void Test::func(std:: string & text, Class1::enum_var var1, unsigned var2, unsigned &var3);};
私は次の形式のClass1を持っています:
class Class1{
public:
/// Different literal types
enum enum_var {
enum_var1, enum_var2, enum_var3
}; };
Class2.cppで上記の関数を次のように定義しました
void Test::func(std:: string & text, Class1::enum_var var1, unsigned var2, unsigned &var3){
cout<<"inside the function";
}
今、私は上記の関数を次のように呼び出しています:
Class2 clsObj;
std::string text="abc";
int var3=0;
clsObj.func( text, Class1::enum_var1, 0, &var3);
ただし、プログラムを実行していると、次のエラーが発生します。
error: no matching function for call to ‘Class2::func(std::string*, Class1::enum_var1, int, int*)’
note: candidate is:
void Class2::func(std::string&, Type::ID, unsigned int, unsigned int&)
note: no known conversion for argument 4 from ‘unsigned int*’ to ‘unsigned int&’
エラーを取り除く方法がわかりません。誰かが親切にしてください。
また、var3での変更を反映させたいので、参照で返すか渡す以外に選択肢はありません。var3を参照で渡すと、エラーが発生します。