【发布时间】:2026-01-18 16:00:01
【问题描述】:
我有这门课:
class myClass{
public:
myClass(string label);
~myClass();
string myget();
void myset(string label);
void myadd(class2 * edge);
private:
string label;
vector<class2 *> myList;
};
我想写一个函数来检查 myClass 类型的对象是否相等:
bool operator== (myClass& l,myClass& r)
{
}
为了检查这些对象的 myList 向量,我想复制 l 和 r,对副本的向量进行排序,并检查这些副本的排序向量是否相等。但我认为我未能复制 l 和 r。这是我为此写的:
myClass x = new myClass("s1");
myClass y = new myClass("s2");
x = l;
y = r;
sort(x.myList.begin(),x.myList.end());
sort(y.myList.begin(),y.myList.end())
if( x == y)
return true;
else
return false;
此代码给出此错误:错误:请求从“myClass*”转换为非标量类型“myClass”。
我尝试制作 x 和 y 指针,但也没有用。您能告诉我如何修复此代码吗?
提前致谢。
【问题讨论】:
-
“我尝试制作 x 和 y 指针,但没有用”“没有用”是什么意思?
-
转换运算符应该接受
const&。 -
@DrewDormann
myClass* x = new myClass("s1"); myClass* y = new myClass("s2");这导致函数的其他部分出现另一个错误