访问嵌套类中的变量时出现的问题

时间:2017-11-18 10:11:25

标签: c++ inner-classes

我正在尝试访问我在嵌套类中声明的变量,但是我无法在控制台上得到我想要的答案。我想要的结果是100,但我得到的只是一个很长的数字。我似乎无法找到错误。这就是我写的:

link.rel='rel';

2 个答案:

答案 0 :(得分:4)

你的结果并不令人惊讶。你似乎在想

shpia::dhoma1 k;
k.gjatesi=10;

将为您要创建的所有dhoma1个对象定义shpia。这是错的。您刚刚定义了一个与shpia::dhoma1个对象无关的shpia对象。

然后定义

shpia r;

这将在r另一个dhoma1创建,与第一个无关,但未初始化。因此,当你打印广场时,你感觉没有意义。

答案 1 :(得分:1)

您正在访问未初始化的内存。 在这里,您可以创建嵌套类的实例,并初始化其成员:

shpia::dhoma1 k;
k.gjatesi=10;

在这里,您创建了一个主类的实例,它与k无关。它已经定义了一个嵌套的类成员变量(r.dh1)

shpia r;
r.redi();
return 0;

由于这个新声明,嵌套类r没有定义的值,当你调用redi()时,你将访问未定义的内存,因此得到一些随机数。根据应用程序的实际运行时布局,此值可能会更改。它是未定义的,您必须在使用它之前定义它。

要解决此问题,您应该使用主类的嵌套类成员,如下所示:

shpia r;
r.dh1.gjatesi = 10;
r.redi();
return 0;