C++ 复制类构造函数C++;

C++ 复制类构造函数C++;,c++,C++,我有一首我想复制的课堂歌曲 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::

我有一首我想复制的课堂歌曲

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)'
说<代码>歌曲复制的歌曲(*此)

请记住,
是一个指针,但复制构造函数会引用它。

Song copied\u Song(*this)

请记住,
这是一个指针,但复制构造函数会引用它。

尝试以下操作:

Song copied_song(*this);
复制构造函数被定义为
Song(const-Song&)
,但
这是指向Song的指针。因此,您需要取消对它的引用

下面这一行让我有些困惑:

this->Song(copied_song);
我想这只是另一次尝试调用复制构造函数,不是吗?无论如何,它不是那样工作的。使用答案顶部的解决方案,或使用:

Song copied_song = *this;
试试这个:

Song copied_song(*this);
复制构造函数被定义为
Song(const-Song&)
,但
这是指向Song的指针。因此,您需要取消对它的引用

下面这一行让我有些困惑:

this->Song(copied_song);
我想这只是另一次尝试调用复制构造函数,不是吗?无论如何,它不是那样工作的。使用答案顶部的解决方案,或使用:

Song copied_song = *this;