関数をパラメーターとして取り、その関数をプライベート リストに適用するクラス関数をメイン プログラムで呼び出そうとしています。エラーが発生していますinvalid conversion from char to char (*f)(char)
。うまくいけば、関数をパラメーターとして渡す方法がわかりません。以下は私のメインcppファイルの関数です
char ToUpper(char c)
{
char b='A';
for(char a='a';a<='z';a++)
{
if(a==c)
{
c=b;
break;
}
++b;
}
return c;
}
void upperList(LineEditor line)
{
char c;
for(int i=0;i<100;i++) //ensure iterator is at beginning of line
line.left();
for(int i=0;i<100;i++)
{
c=line.at(); //assign character current element pointed to by iterator
line.apply(ToUpper(c)); //problem: trying to apply ToUpper function to char c
line.right(); //apply function and increment iterator
}
}
そして、これは適用メンバー関数です
void LineEditor::apply(char (*f)(char c))
{
*it=f(c);
}
また、明らかでない場合のために、cctypes の toupper と tolower を使用してみましたが、これらは整数を受け取って返します。