[英]Why it is assigning a garbage value to variable 'calc'?
該程序將垃圾值賦予變量calc
。
誰能幫我? 這里有什么問題?
代碼:
#include <iostream>
using namespace std;
class trial {
public:
int m1;
int m2;
int calc = m1 + m2;
void setdata(int a1, int a2) {
m1 = a1;
m2 = a2;
}
void getcalc(){
cout << "Sum of m1 & m2 is " << calc << endl;
}
};
int main() {
trial t1;
t1.setdata(3, 8);
t1.getcalc();
system("pause>0");
return 0;
}
Output:
Sum of m1 & m2 is -1717986920
問題是您如何定義calc
。
當 object trial
被初始化時, m1+m2
被分配給calc
,但m1
和m2
本身沒有被初始化(它們包含“垃圾”)。
當調用setdata()
時,兩個用戶提供的整數被分配給m1
和m2
,但calc
沒有改變,因此 output 中的“垃圾”。
您需要通過添加calc = m1 + m2;
來更新calc
; 在setdata()
中。
您永遠不會首先計算總和...
void setdata(int a1, int a2) {
m1 = a1;
m2 = a2;
calc = m1 + m2;
}
但總是初始化成員變量,你沒有初始化 m1 和 m2,因此是由編譯器分配的垃圾值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.