在这个程序中,我只想测试一个类本身的结构和联合。
我创建了一个公共struct
,并在其中声明了一个联盟。
我正在使用Visual Studio和Qt Creator输入此代码。
我想问一下,在一个好的,可访问的类中定义一个struct
吗?
我遇到了问题。
如果这是正确的,我如何从struct
访问main
的方法或数据成员?
我还想使用union
的{{1}}成员。
如果struct
的方法或功能无法通过这种方式访问,这是另一种做法吗?
// *********** *********
struct
答案 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;
}