【发布时间】:2015-01-18 19:50:38
【问题描述】:
我正在尝试调试代码。这真的很简单,但我被卡住了。
编译器是这样说的:
在函数void initialization():
第 35 行错误:在 '-' 标记之前预期的 unqualified-id
这是代码:
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
class vars
{
public:
int coins;
int coins_sec;
int gtx750ti; // The amount of GTX750ti owned by the player
int gtx760; // The amount of GTX760 owned by the player
int gtx770;
int gtx780;
int gtxtitan;
int gtxtitanB;
int gtxtitanZ;
int r9270;
int r9270x;
int r9280;
int r9280x;
int r9290;
int r9290x;
int r9295x2;
int gpuNames[14]; // The names of the different GPUs
int maxPower; // The maximum power the PSU can deliver to the components
};
void initialization()
{
vars.gpuNames[0] = "gtx750ti";
vars.gpuNames[1] = "gtx760";
vars.gpuNames[2] = "gtx770";
vars.gpuNames[3] = "gtx780";
vars.gpuNames[4] = "gtxtitan";
vars.gpuNames[5] = "gtxtitanB";
vars.gpuNames[6] = "gtxtitanZ";
vars.gpuNames[8] = "r9270";
vars.gpuNames[9] = "r9270x";
vars.gpuNames[10] = "r9280";
vars.gpuNames[11] = "r9280x";
vars.gpuNames[12] = "r9290";
vars.gpuNames[13] = "r9290x";
vars.gpunames[14] = "r9295x2";
}
int main()
{
vars vars;
initiation();
return 0;
}
【问题讨论】:
-
vars是一个类。你不能说像vars.gpuNames[0]这样的东西。 -
在
initialization()的范围内vars是type 而不是variable 并且您访问的成员不是static。为什么你认为这应该有效? -
明确一点:您使用
vars作为both 类型和 变量的名称——但类型是可见的全局,而变量仅在main内部可见。 -
gpuNames也是一个整数,你用字符串分配它,这应该会给你一些编译器错误,如果你把vars的混淆名称作为一个类型和同时是一个变量。
标签: c++ function class codeblocks