Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations SkipVought on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

dialog box

Status
Not open for further replies.

BaharPamuk

Programmer
Jan 30, 2006
16
0
0
TR
Hi,

I want to create a variable such that it will preserve its value even if the program terminates. I mean it will stay in memory even if main() returns. How can i achieve this? Or is this possible?

Thanks.
 
Sorry for the inconvenient subject of the thread.
 
Persistent int, for example:
Code:
class pint
{
  int val;
  string fname;
public:
  pint(const string& vname); //< External (file) image name.
  ~pint();
  operator int () const { return val; };
  operator int&() { return val; }
  pint& operator =(const int& x) { val = x; return *this; }
  bool save();
};

pint::pint(const string& vname):fname(vname)
{
  ifstream f(vname.c_str());
  if (f)
     f >> val;
  else
     val = 0;
};

pint::~pint()
{
  save();
}

bool pint::save()
{
  ofstream f(fname.c_str());
  bool ok = false;
  if (f)
     ok = true,f << val;
  return ok;
}
Now try repeat calls:
[/code]
int main(int argc, char* argv[])
{
pint x("persint");
cout << ++x << endl;
return 0;
}
[/code]
No explicit initialization for this class, of course.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top