我有一个名为CiF的类,我想把CiF的构造函数指针移到名为Cmanager的新类中。我尝试了这样的东西:
CiF::CiF() : Cmanager(new Cmanager(CiF THIS))
{
}请帮帮忙谢谢
发布于 2011-01-09 01:40:29
下面的代码显示了如何在ctor中将一个类的指针赋给另一个类。我想这就是你想要实现的目标。
我强烈建议你不要使用这样的代码,但是你没有给出足够的关于你的用例的信息,所以我不能给你其他的选择。
您可能应该研究一下智能指针和一般的类设计。(当给出指向任何其他类的指针时,你需要控制哪个类拥有该对象,删除它等)
class CiF;
class Cmanager
{
public:
Cmanager() :
cif_(0)
{};
void setCiF(CiF* cif)
{
cif_ = cif;
}
private:
CiF* cif_;
};
class CiF
{
public:
CiF() :
cmanager_(Cmanager())
{
cmanager_.setCiF(this);
}
private:
Cmanager cmanager_;
};发布于 2011-01-09 01:47:42
如果没有CiF和Cmanager之间的关系,我认为这是不可能实现的。
#include <iostream>
class Cmanager
{
};
class Cif:public Cmanager
{
Cmanager *ptr ;
public:
bar() : ptr(this)
{
} ;
};
int main()
{
Cif obj ;
return 0;
}https://stackoverflow.com/questions/4635154
复制相似问题