-1

属するクラスのインスタンスを渡す関数を作成しようとしています。thisポインターでできることはわかっていますが、その関数を呼び出す方法がわかりません。どんな助けでも大歓迎です!これは私のコードです:

ClassA.h

ClassA{
     public:
         int Send(Foo &myFoo, ClassB &classb);
}

ClassA.cpp

int ClassA::Send(Foo &myFoo, ClassB &classb)
{
...
}

ClassB.cpp

void function(const Foo &thisFoo){
 ClassA myClassA;
 int ret =  myClassA.Send(&thisFoo, *this);
}

「ClassB::Send(const Foo*, ClassB&)」の呼び出しに一致する関数がありません</p>

編集: 入力していただきありがとうございます! ClassAにSend()でconst Fooを期待させたときに機能します。

ClassA.h

ClassA{
             public:
                 int Send(const Foo &myFoo, ClassB &classb);
        }

ClassA.cpp

int ClassA::Send(const Foo &myFoo, ClassB &classb)
{
...
}

ClassB.cpp

void function(const Foo &thisFoo){
 ClassA myClassA;
 int ret =  myClassA.Send(thisFoo, *this);
}
4

1 に答える 1

1

&thisFoo は thisFoo オブジェクトのアドレスになります。型は Foo* です。このようにする必要があります:

int ret =  myClassA.Send(thisFoo, *this);

編集: thisFoo は const 参照として宣言されているため、 thisFoo 引数を使用して myClassA.Send() を呼び出すことはできません。したがって、thisFoo 引数を非 const にするか、(これはちょっと奇妙です) そのコピーを渡すか、const_cast を実行する必要があります。

于 2012-11-20T14:50:20.200 に答える