1

コピーしたいクラスの歌があります...

int mtm::Song::getLimitedLength(int maximum_length) {

        Song copied_song(this);
    this->Song(copied_song);
}

次のエラーが表示されます。

Multiple markers at this line
- candidates are:
- no matching function for call to 'mtm::Song::Song(mtm::Song* const)'
4

2 に答える 2

5

と言うSong copied_song(*this);

これthisはポインタですが、コピー コンストラクタは参照を取ります。

于 2013-01-19T00:56:22.313 に答える
2

これを試して:

Song copied_song(*this);

コピー コンストラクターは として定義されてSong(const Song&)thisますが、Song へのポインターです。したがって、逆参照する必要があります。

以下の行は私にとってやや混乱しています:

this->Song(copied_song);

コピー コンストラクターを呼び出そうとしたのは、もう 1 回だけだったのではないでしょうか。とにかく、それはそのようには機能しません。私の回答の上部にあるソリューションを使用するか、次を使用します。

Song copied_song = *this;
于 2013-01-19T00:56:36.323 に答える