*程序頭部註釋開始
* 程序的版權和版本聲明部分
* Copyright (c) 2011, 煙臺大學計算機學院學生
* All rights reserved.
* 文件名稱: 常函數改錯
* 作 者: 郭廣建
* 完成日期: 2012年 3 月 26 日
* 版 本 號: 1.0
【任務1】下面的程序存在編譯錯誤。有兩種方法可以修改,請給出這兩種修改方案,在報告中說明你傾向於用哪一種?爲什麼?處理此類問題的原則是什麼?
class C
{
private:
int x;
public:
C(int x){this->x = x;}
int getX(){return x;}
};
void main()
{
const C c(5);
cout<<c.getX();
system("pause");
}
第一種解決方案:
去掉const;
第二種解決方案:
把cout<<c.getX();改爲
C &d = c;
cout << d.getX();
我更傾向於第二種解決方案;因爲第二種方案可以保護數據不被改變,起到保護作用。
處理此類問題的原則:儘量保護數據不被更改
運行結果: