当我尝试访问类的公共变量(在这种情况下,试图输入文本行)时,它表明它尚未初始化。但是,我在课堂上将其声明为公共变量。 我知道这是一个虚假的错误,但找不到它:D
#include <iostream>
#include <conio.h>
using namespace std;
class stringlength {
private:
int lengt;
public:
char * row;
int len()
{
for (int i = 0, lengt = 0; (*(row + i) != '\0'); i++, lengt++) {}
return lengt;
}
};
int main()
{
stringlength test;
cout << "Enter a string:";
cin >> test.row;
cout << "Length is: " << test.len();
_getch();
}
该程序应提供输入行的长度(如strlen函数) 错误是:
使用了错误C4700未初始化的局部变量'test'
感谢帮助;)
答案 0 :(得分:3)
声明变量并不意味着它已初始化。
在构造函数中将其初始化,或者仅在char * row = nullptr;
中初始化(如果预期的初始化为0)。
与您拥有的所有没有构造函数的变量相同。
编辑:在这种情况下,您需要初始化为新的指针char * row = new char[...]