未初始化的局部变量使用错误
Uninitialized local variable used error
所以这是我的代码,应该运行,但它没有,因为我得到错误"未初始化的局部变量' rnumeric '使用"在我的代码在这里,我认为是源于主要。不知道为什么,我错过了什么?谢谢你
#include <iostream>
#include <string>
using namespace std;
class romanType
{
public:
int convertNum(char rNum);
void decimalPrint();
void romanPrint();
romanType(int store);
//Constructor with parameter
romanType();
char roman[7];
string num;
int length = 0;
string dNum;
int equals;
};
void romanType::romanPrint()
{
cout << "The Roman numeral is: " << roman << endl;
}
void romanType::decimalPrint()
{
cout << "The Decimal number is: " << equals << endl;
}
int romanType::convertNum(char rNum)
{
int subtractSum = 0;
int totalNum = 0;
for (int i = 0; i< dNum.length(); i++)
{
switch (roman[i])
{
case 'M':
totalNum += 1000;
if (subtractSum < 1000)
totalNum -= subtractSum * 2;
case 'm':
totalNum += 1000;
if (subtractSum < 1000)
totalNum -= subtractSum * 2;
break;
case 'D':
totalNum += 500;
if (subtractSum < 500)
totalNum -= subtractSum * 2;
break;
case 'd':
totalNum += 500;
if (subtractSum < 500)
totalNum -= subtractSum * 2;
break;
case 'C':
totalNum += 100;
if (subtractSum < 100)
totalNum -= subtractSum * 2;
break;
case 'c':
totalNum += 100;
if (subtractSum < 100)
totalNum -= subtractSum * 2;
break;
case 'L':
totalNum += 50;
if (subtractSum < 50)
totalNum -= subtractSum * 2;
break;
case 'l':
totalNum += 50;
if (subtractSum < 50)
totalNum -= subtractSum * 2;
break;
case 'X':
totalNum += 10;
if (subtractSum < 10)
totalNum -= subtractSum * 2;
break;
case 'x':
totalNum += 10;
if (subtractSum < 10)
totalNum -= subtractSum * 2;
break;
case 'V':
totalNum += 5;
if (subtractSum < 5)
totalNum -= subtractSum * 2;
break;
case 'v':
totalNum += 5;
if (subtractSum < 5)
totalNum -= subtractSum * 2;
break;
case 'I':
totalNum += 1;
if (subtractSum < 1)
totalNum -= subtractSum * 2;
break;
case 'i':
totalNum += 1;
if (subtractSum < 1)
totalNum -= subtractSum * 2;
break;
default:
cout << "not valid!" << endl;
}
totalNum = totalNum + subtractSum;
equals = totalNum;
return equals;
}
};
int main()
{
romanType output;
int rNumeral;
char entry;
romanType roman = romanType(rNumeral);
// input for entry
cout << "Please enter a Roman numeral (Capitalized only): " << endl;
cin >> rNumeral;
// print options
cout << "Print Decimal or Roman Numeral? Type 1 for Decimal, 2 for Roman Numeral: " << endl;
cin >> entry;
if (entry == '1')
{
cout << "You chose to view the decimal conversion." << endl;
roman.decimalPrint();
}
else if (entry == '2')
{
cout << "You chose to view the Roman numeral." << endl;
roman.romanPrint();
}
else
cout << "Error: bad input" << endl;
return 0;
exit(1);
}
在gcc上编译时没有警告:
#include <iostream>
void foo(int i)
{
std::cout << i << std::endl;
}
int main()
{
int r;
std::cin >> r;
foo(r);
}
而这会生成未初始化的变量warning(正确地):
#include <iostream>
void foo(int i)
{
std::cout << i << std::endl;
}
int main()
{
int r;
foo(r);
std::cin >> r;
}
编译器输出示例:
/tmp/gcc-explorer-compiler116823-58-135fozf/example.cpp: In function 'int main()':
11 : warning: 'r' is used uninitialized in this function [-Wuninitialized]
foo(r);
^
Compiled ok
相关文章:
- 修复未初始化的局部变量错误
- 未初始化的局部变量错误甚至认为我初始化了它(C++)
- 我创建的类似乎错误地设置了它的局部变量
- 分配给静态变量的局部变量;编译错误在'c'但在 C++ 中成功
- 静态局部变量会被错误地优化吗?
- 错误 C4700:使用未初始化的局部变量'result'
- 尝试声明函数的局部变量,但得到范围错误
- 指针被分配给错误的局部变量
- 错误 C4700:使用未初始化的局部变量'enemyHealth'
- 在c++上创建税务计算程序,错误为未初始化的局部变量
- C++错误 C4700:使用未初始化的局部变量'i'
- 我不断收到错误:运行此代码时重新定义'i'。对局部变量的误解
- 从函数中引用局部变量不会给出错误
- 错误 C4700:使用未初始化的局部变量'A'
- C++:使用错误 C4700 未初始化的局部变量""
- 错误 C4700:使用未初始化的局部变量'lowest'
- 错误 1 错误 C4700:未初始化的局部变量'rate'并在C++中'hours'
- 全局变量如何在销毁时产生错误,而局部变量却不会
- 未初始化的局部变量使用错误
- 如何在循环外打印总和?我认为全局变量和局部变量的减速存在一些错误