Сегодня я работаю над одноэлементным тестом на C ++. Синглтон работает нормально, но я хотел бы создать экземпляр объекта stati c, когда пользователь пытается получить доступ к его члену, поэтому, если переменная не создается, когда мы пытаемся получить доступ к его члену, она не будет sh вместо этого он просто сгенерирует мой синглтон.
Вот мой class.h:
class PDG : public EmployeRH
{
public:
static void Instantiate(std::string nom, std::string prenom);
// Current manual instantiation version of the singleton
PDG* operator->();
// This is the line I just added to overload "->" operator ... But it seems it's never called.
void SePresenter();
static PDG* _instance;
private:
PDG();
~PDG();
PDG(std::string nom, std::string prenom);
int _budget;
};
Методы. cpp
PDG* PDG::_instance=NULL;
PDG::PDG()
{
}
PDG::~PDG()
{
}
PDG::PDG(std::string a_nom, std::string a_prenom):EmployeRH(a_nom,a_prenom)
{
_budget = 100000;
}
void PDG::Instantiate(std::string a_nom, std::string a_prenom)
{
cout << "instantiation pdg" << endl;
if (_instance == NULL)
{
_instance = new PDG(a_nom,a_prenom);
}
}
PDG* PDG::operator->()
{
PDG::Instantiate("Unknown", "Unknown");
return _instance;
}
void PDG::SePresenter()
{
cout << _nom << " " << _prenom << endl;
}
main. cpp
void main()
{
PDG::_instance->SePresenter();
system("pause");
}
Дело в том, что он идет непосредственно в «SePresenter ()», а не в мой перегруженный оператор «->». Если бы кто-нибудь мог помочь, это было бы здорово.
Спасибо,
Воздействие