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;