我有一首我要复制的课歌......
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)'
答案 0 :(得分:5)
说Song copied_song(*this);
。
请记住,this
是指针,但复制构造函数采用引用。
答案 1 :(得分:2)
试试这个:
Song copied_song(*this);
复制构造函数定义为Song(const Song&)
,但this
是指向Song的指针。因此,您需要取消引用它。
以下这一行对我来说有点困惑:
this->Song(copied_song);
我想这只是另一次尝试调用复制构造函数,不是吗?无论如何,它不会那样工作。使用我的答案顶部的解决方案,或使用:
Song copied_song = *this;