c ++为类分配内存

jas*_*son 1 c++ pointers class

我有这门课:

class myClass{
    public:
        myClass(string label);
        ~myClass();
        string myget();
        void myset(string label);

        void myadd(class2 * edge);
    private:
        string label;
        vector<class2 *> myList;
};
Run Code Online (Sandbox Code Playgroud)

我想编写一个函数来检查myClass类型的对象是否相等:

 bool operator== (myClass& l,myClass& r)
{         

}
Run Code Online (Sandbox Code Playgroud)

为了检查那些对象的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;
Run Code Online (Sandbox Code Playgroud)

此代码提供此错误:错误:从"myClass*"转换为请求的非标量类型"myClass".

我尝试制作x和y指针,但它也没有用.你能告诉我如何修复这段代码吗?

提前致谢.

And*_*rew 5

myClass x = new myClass("s1"); - here is the problem
Run Code Online (Sandbox Code Playgroud)

运算符new返回一个指针.因此,您要么存储指针,要么只在自动存储上创建副本(通常称为堆栈)

myClass x = myClass("s1"); - should be so (stack)
myClass *x = new myClass("s1"); - or so (heap)
Run Code Online (Sandbox Code Playgroud)