错误:表达式必须具有类类型

时间:2014-04-04 15:40:51

标签: c++

我在C ++中遇到了这个类的问题;它是这样写的。

在第二个来源,

void idealtype::compare(idealtype T1)
{
if (height.size() > T1.height.size())
    cout << T1.getname() << " " << T1.getage() << "\t" << T1.getheight() << "\n";
else if (height.size() < T1.height.size())
    cout << getname() << " " << getage() << "\t" << getheight() << "\n";
else if (height.size() == T1.height.size())
{
    cout << T1.getname() << " " << T1.getage() << "\t" << T1.getheight() << "\n";
    cout << getname() << " " << getage() << "\t" << getheight() << "\n";
}
cout << "\n";
}
标题中的

;

class idealtype
{public:
void compare(idealtype);

...

private:
int height;
}

在主要来源; ....

idealtype A(a,b,c) // c is "height"

...

idealtype B(a,b,c) // c is "height"
B.compare(A)  

我认为这一切都做得很好,但是Visual一直在向我展示,

(在第二个源中,每个if()状态)错误:表达式必须具有类类型

那么,这个问题的关键是什么?

Plz帮助我,伙计们:)

1 个答案:

答案 0 :(得分:2)

  

那么,这个问题的关键是什么?

在你的代码中你说

if (height.size() > T1.height.size())

class idealtype {
    // ...
private:
    int height; // <<<<<<<<<<<<
};

因为height被声明为int,所以它没有类似方法的类。这就是编译器抱怨的原因。