【问题标题】:bool from a struct lead to "error: expression must have class type"结构中的布尔值导致“错误:表达式必须具有类类型”
【发布时间】:2011-04-29 08:12:14
【问题描述】:

我有一个结构定义为

struct sData{ 
idx * id; 
int * stime; 
bool * result;  
unsigned int N;
};

然后是使用它的代码

numeric compute(numeric e, sData swabs){
  numeric cache=0.0;
  int sid=0;
  while(sid<swabs.N){
    if(swab.result[sid]) 
      cache += log(e);
    else cache += log(1.0-e);
    sid += 1;
  }
  return cache;
}

但在编译时出现错误。

paug_cuda.cu(602):错误:表达式必须具有类类型

这是什么意思。什么班级类型?我在逻辑表达式中使用布尔值。这还能有什么。我错过了什么?

【问题讨论】:

  • 你能告诉我们哪一行是602吗?
  • 我显然将其修剪到相关部分。但问题所在是“if(swab.result[sid])”行中的错字

标签: c++ pointers struct boolean compiler-errors


【解决方案1】:

swab -> swabs :)

错误意味着您编写了 X.Y 之类的内容,而 X 不是类/结构的实例。

【讨论】:

  • 有时间限制,从您提交问题开始。我在努力。现在已标记。
猜你喜欢
  • 1970-01-01
  • 2018-03-27
  • 2022-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-26
相关资源
最近更新 更多