亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么運行之后顯示undefined reference to 'X::X(X const&)'

為什么運行之后顯示undefined reference to 'X::X(X const&)'

C++
慕田峪7331174 2023-04-24 09:05:45
#include <iostream>using namespace std;class X{int i;X(const X&);public:X (int ii=0) :i(ii) {};X* clone() const{return new X(*this);};};void f(const X& h){X *t;t=h.clone();}int main(){X n(9);f(n);return 0;}問一下,我這幾行代碼錯在哪里了。為什么運行之后顯示undefined reference to 'X::X(X const&)'我就是想在函數f()里面調用一下clone復制一個能被修改的局部拷貝還有,題目中要求在X中聲明一個私有類型的拷貝構造函數。加了那一行就不對了。
查看完整描述

2 回答

?
繁星淼淼

TA貢獻1775條經驗 獲得超11個贊

用下邊這種方式實現即可。用VS 2005是編譯通過的
using namespace std;
#include <iostream>

using namespace std;

class X
{
int i;
X(const X&);
public:
X (int ii=0) :i(ii) {};
X* clone() const
{
X* tmp = new X;
tmp->i = (*this).i;
return tmp;
};
};

void f(const X& h)
{
X *t;
t=h.clone();
}

int main()
{
X n(9);
f(n);
return 0;
}


查看完整回答
反對 回復 2023-04-27
?
九州編程

TA貢獻1785條經驗 獲得超4個贊

f不是X的成員函數,所以不能調用clone。

查看完整回答
反對 回復 2023-04-27
  • 2 回答
  • 0 關注
  • 247 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號