访问类

时间:2016-06-08 17:45:30

标签: c++ struct unions

在这个程序中,我只想测试一个类本身的结构和联合。

我创建了一个公共struct,并在其中声明了一个联盟。

我正在使用Visual Studio和Qt Creator输入此代码。

我想问一下,在一个好的,可访问的类中定义一个struct吗? 我遇到了问题。

如果这是正确的,我如何从struct访问main的方法或数据成员?

我还想使用union的{​​{1}}成员。

如果struct的方法或功能无法通过这种方式访问​​,这是另一种做法吗?

// *********** *********

struct

1 个答案:

答案 0 :(得分:-1)

您实际上要做的是在您的班级中有一个实例结构。你所做的是在你的类中定义一个类(它实际上并没有给你的类成为该类型的成员,但只限定了它的定义)。

所以你需要做的就是从班级中取出struct

struct CTESTSTRUCT
{
   // ...
};

然后为CTest提供CTESTSTRUCT

类型的成员
class CTest {
    int value;
public:
    CTest(int);
    int getValue();
    CTESTSTRUCT test;

    ~CTest();
};

现在您可以像这样访问它:

int main() {
    CTest * ctestObj;
    ctestObj = new CTest(25);
    int returnVal = ctestObj->getValue();
    std::cout << "Value Returned: " << returnVal << std::endl;
    std::cout << "structVal: " << std::endl;
    ctestObj->test.testVal = 10;
    delete ctestObj;
    return 0;
}