簡體   English   中英

為什么要將垃圾值分配給變量“calc”?

[英]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 ,但m1m2本身沒有被初始化(它們包含“垃圾”)。

當調用setdata()時,兩個用戶提供的整數被分配給m1m2 ,但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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM