C++ OOP类构造函数获取用户整数输入运算输出随机数问题
问题原因
你第一段代码的构造函数中重复定义了和类成员变量同名的局部变量:
calculation() { // 这里的int声明会创建两个构造函数内的局部变量num1、num2 int num1 = 0; int num2 = 0; cout << "Write your numbers" << endl; // 输入的值只会存入上述局部变量,类的私有成员num1、num2完全没有被赋值 cin >> num1>>num2; }
类的私有成员变量num1、num2全程没有被初始化,保留的是内存的默认随机值,运算时自然会输出无意义的结果。
而你的第二段代码构造函数中没有加int声明,直接操作的就是类的成员变量,所以赋值生效,运行结果正常。
修正方案
只需要删除构造函数里对num1、num2的重复声明即可:
calculation() { // 直接操作类的成员变量,不需要重新加int声明 num1 = 0; num2 = 0; cout << "Write your numbers" << endl; cin >> num1 >> num2; }
补充注意:输入时请保证第二个输入值不为0,否则除法、取模运算会触发程序崩溃。
内容的提问来源于stack exchange,提问作者Naseeb Hassan
相关产品推荐
相关产品推荐

