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

#include <iostream>

using namespace std;

class shpia {
public:
    int tot;

    class dhoma1 {
    public:
        int gjatesi;

        int di() {
            return gjatesi * gjatesi;
        }
    };

    dhoma1 dh1;

    void redi(){
        cout<<dh1.di();
    }
};

int main()
{
    shpia::dhoma1 k;
    k.gjatesi = 10;
    shpia r;
    r.redi();

    return 0;
}

最佳答案

您的结果不足为奇。你好像在想

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


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

然后定义

shpia r;


这将在r中创建与未初始化的第一个dhoma1无关的另一个。因此,当您打印正方形时,您将变得毫无意义。

关于c++ - 在嵌套类中访问变量的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47364850/

10-12 06:20