【发布时间】:2016-04-21 15:36:38
【问题描述】:
假设我有一个班级,名为Test。在其中,我声明了一个名为testResults 的结构。然后我写了一个成员函数,命名为performTest()。我希望这个函数改变结构变量的值(它也需要其他输入)。这是我所做的:
(注意:我已经减少了代码以减少您检查的麻烦)
在标题中:
class Test : public BaseHardwareTest
{
Q_OBJECT
public:
explicit Test(QObject *parent = 0);
struct testResults {
int testOneRes[15];
int testTwoRes[5];
};
int performTest(int arg1, int arg2, struct testResults &testRes);
signals:
public slots:
};
来源:
int Test::performTest(int arg1, int arg2, Test::testResults &testRes)
{
for (int i = 0; i < 15; i++) {
if(arg1 < 12)
testRes.testOneRes[i] = -1;
else
testRes.testOneRes[i] = 1;
}
for (int i = 0; i < 5; i++) {
if(arg2 < 33)
testRes.testTwoRes[i] = -1;
else
testRes.testTwoRes[i] = 1;
}
return 1;
}
这是我的各种尝试之一。这个没有任何错误,但我不能使用它。 我无法从我的 main 访问成员结构。我是 OOP 概念的新手,我无法让它发挥作用。
标题/源代码部分有什么问题吗?如果没有,我该如何调用这个函数?有什么帮助吗?
[编辑] 问题已解决:
事实证明,问题完全是另一回事。我用 两个项目(一个是库,另一个是用于测试 图书馆。我们分别称它们为 testLib 和 tester) 有依赖关系。当我在 testlib 项目中进行更改时,我 必须按顺序从 tester 的 main.cpp 转到相关的 testLib 位置 让我的 IDE 看到更改并进行相关更新。自从我是 在两个单独的文本编辑器窗口中工作并且没有做我做过的事情 如上所述,我的 IDE 没有看到
Test类的新成员和 当我输入Test:: testRes-- 时没有建议我。这让我 认为我无法访问新成员结构。谢谢大家 寻求帮助。
【问题讨论】:
-
请出示
main的代码。它应该像Test::testResults一样简单。 -
“我无法从我的 main 访问成员结构”是什么意思;错误是什么?显示更多代码。
-
告诉我们
main(),你也不需要struct testResults &testRes,你只需要testResults &testRes