我在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帮助我,伙计们:)
答案 0 :(得分:2)
那么,这个问题的关键是什么?
在你的代码中你说
if (height.size() > T1.height.size())
class idealtype {
// ...
private:
int height; // <<<<<<<<<<<<
};
因为height
被声明为int
,所以它没有类似方法的类。这就是编译器抱怨的原因。