我有一个名为CiF
的类,我希望将CiF
的构造函数指针移动到名为Cmanager
的新类。
我试过这样的事情:
CiF::CiF() : Cmanager(new Cmanager(CiF THIS))
{
}
请帮忙 感谢
答案 0 :(得分:1)
以下代码显示了如何在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_;
};
答案 1 :(得分:1)
如果没有CiF
和Cmanager
之间的关系,我认为无法实现。
#include <iostream>
class Cmanager
{
};
class Cif:public Cmanager
{
Cmanager *ptr ;
public:
bar() : ptr(this)
{
} ;
};
int main()
{
Cif obj ;
return 0;
}