类中未初始化的局部变量

时间:2019-04-18 06:56:36

标签: c++

当我尝试访问类的公共变量(在这种情况下,试图输入文本行)时,它表明它尚未初始化。但是,我在课堂上将其声明为公共变量。 我知道这是一个虚假的错误,但找不到它: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'

感谢帮助;)

1 个答案:

答案 0 :(得分:3)

声明变量并不意味着它已初始化。

在构造函数中将其初始化,或者仅在char * row = nullptr;中初始化(如果预期的初始化为0)。

与您拥有的所有没有构造函数的变量相同。

编辑:在这种情况下,您需要初始化为新的指针char * row = new char[...]