我有这个类中调用的MemoryManager,重载“=”使obj2的时候= OBJ1
它应该实现一个简单的智能指针,(算上参考)平等不会被调用;
我有一个矢量,其中i存储所请求的指针,以及i指针的索引返回给调用者..
,创建一个MemoryManager obj,分配一个内存空间并将其存储到数据中,增加count,并将该对象存储到global_MM_vecotr中,并将该索引作为指针返回,当use尝试使用间接寻址( - >)时,返回相应的实数指针从矢量,根据索引值..
class MemoryManager
{
public:
//operators overloading prototypes
private:
void* data;
int count ;
};
std::vector<MemoryManager*> global_MM_vecotr;
void* MemoryManager::operator=(void* x)
{
// some code here
}
我正在面临的问题是,我重载几个运营商的,然而,当我尝试运行下面的“=”操作符不会被调用的代码.. 可以some1点问题拿出来给我..
//the main code
{
MemoryManager* obj1 = (MemoryManager*) x->fun1(4); //fun1 returns an index to a MemoryManager obj in a vector;
MemoryManager* obj2 = obj1 ;
}
编辑:已经尝试以下,没有变化
{
MemoryManager*obj1 = (MemoryManager*) x->fun1(4); //fun1 returns an index to a Class obj in a vector;
MemoryManager*obj2 ;
*obj2 = *obj1;
}
{
MemoryManager* obj1 = (MemoryManager*) x-> fun1(4);
MemoryManager* obj2;
obj2.operator =(*obj1);
}
我很喜欢misunderstading .. classA是一样的memorymanager ..我正在重新命名我的“胡言乱语”的名字变成更ig的名称的过程..当我张贴的质量.. – 2009-08-11 08:50:24
公平的,那么你只需要解决其他两点。 – 2009-08-11 08:53:20
我编辑了代码..并省略了ClassA的使用:),我将相等移动到创建对象后。 你可以检查编辑后的描述并告诉我我可以做些什么来避免使用指针:S – 2009-08-11 08:58:50