C++ 如何消除初始化成员变量警告?

C++ 如何消除初始化成员变量警告?,c++,algorithm,C++,Algorithm,这是我的代码简单的欧几里德算法的GCD,它的工作完全没有任何错误,但为什么我得到这些警告?我做错了什么 我收到的警告是: 严重性代码说明项目文件行抑制状态 警告C26495变量“EuclidAlgo::ch”未初始化。始终初始化成员变量类型。6。EuclidAlgo G:\VISUAL STUDIO\EuclidAlgo\EuclidAlgo\EuclidAlgo.CPP 43 警告C26495变量“EuclidAlgo::num1”未初始化。始终初始化成员变量类型。6。EuclidAlgo G

这是我的代码简单的欧几里德算法的GCD,它的工作完全没有任何错误,但为什么我得到这些警告?我做错了什么

我收到的警告是: 严重性代码说明项目文件行抑制状态 警告C26495变量“EuclidAlgo::ch”未初始化。始终初始化成员变量类型。6。EuclidAlgo G:\VISUAL STUDIO\EuclidAlgo\EuclidAlgo\EuclidAlgo.CPP 43 警告C26495变量“EuclidAlgo::num1”未初始化。始终初始化成员变量类型。6。EuclidAlgo G:\VISUAL STUDIO\EuclidAlgo\EuclidAlgo\EuclidAlgo.CPP 43 警告C26495变量“EuclidAlgo::num2”未初始化。始终初始化成员变量类型。6。EuclidAlgo G:\VISUAL STUDIO\EuclidAlgo\EuclidAlgo\EuclidAlgo.CPP 43 警告C26495变量“EuclidAlgo::temp”未初始化。始终初始化成员变量类型。6。EuclidAlgo G:\VISUAL STUDIO\EuclidAlgo\EuclidAlgo\EuclidAlgo.CPP 43

#include<iostream>
using namespace std;
class EuclidAlgo
{
public:
    int m = 0, n = 0, r = 0, temp, num1, num2, ch;

    void input()
    {
        cout << "\nEnter two numbers to find their CDR : ";
        cin >> m;
        cin >> n;
        num1 = m;
        num2 = n;
    }

    void swap()
    {
        temp = m;
        m = n;
        n = temp;
    }

    void Algorithm()
    {
        if (n > m)
        {
            swap();
        }

        if (m % n == 0)
        {
            cout << "\n " << n << " is GCD of " << num1 << " and " << num2;
        }
        else
        {
            r = m % n;
            m = n;
            n = r;
            Algorithm();
        }
    }
};
int main()
{
    EuclidAlgo o;

    o.input();
    o.Algorithm();
    return 0;
}
像这样初始化它们

temp =0, num1 =0 , num2 =0, ch =0;
在这里:

您尚未初始化最后四个参数

为了消除警告,只需初始化这四个参数,就像您对前三个参数所做的那样,例如

int m = 0, n = 0, r = 0, temp = 0, num1 = 0, num2 = 0, ch = 0;

您可以通过使用值初始化temp、num1、num2和ch来删除这些警告,方法与对m、n和r所做的相同。存在这些警告是为了阻止您访问未初始化的内存并运行到未定义的行为。temp和r仅在本地使用,因此它们不应是成员变量。ch完全不用,可以删除。实际上,我创建ch是为了运行switch语句,这不是完整的代码,谢谢你的帮助。哦,好的,非常感谢,现在我有一个干净的代码要在课堂上提交。@ChiragjotSingh,欢迎你。我正要更新我的答案,但你问题下的评论基本上是我想补充的,所以我不会这么做。如果你觉得答案有帮助,那么请接受它,当然,如果你愿意的话。
int m = 0, n = 0, r = 0, temp = 0, num1 = 0, num2 = 0, ch = 0;