KellyJensen
asked on
Scope rules for class
I've created a class called "RDAindividual" with get and set properties. I read data from my database, and create a new object "user". What is confusing me is that inside the "while", I can retrieve my data using the get property, but outside the while I cannot...... I get compile errors. I don't understand, I thought that dynamic variables created with "new" were saved in the heap and not garbage collected, or maybe I'm just using the scope resolution operator wrong. What is wrong?
while(reader->Read())
{
RDAindividual *user = new RDAindividual(
Double::Parse(reader->Item [S"item1"] ->ToString ()),
Double::Parse(reader->Item [S"item2"] ->ToString ()),
Double::Parse(reader->Item [S"item3"] ->ToString ());
MessageBox::Show(user->get _RDAItem2( ).ToString (), S"Test1"); // Inside "while" this works
} // end while
reader->Close();
MessageBox::Show(RDAindivi dual::user ->get_RDAI tem2().ToS tring(), S"Test2"); // Outside "while" get compile
// errors
while(reader->Read())
{
RDAindividual *user = new RDAindividual(
Double::Parse(reader->Item
Double::Parse(reader->Item
Double::Parse(reader->Item
MessageBox::Show(user->get
} // end while
reader->Close();
MessageBox::Show(RDAindivi
// errors
ASKER
Thank you, I understand better now. I would really like to know how to make my " *user " pointer global, so that I have access to it throughout my program, not just in the form I am currently using. I have a "Global.h" file where I have some integers defined, and then then use "extern int variable_name;" to tell the compiler that the integers are defined elsewhere. Would it be possible to do the same with an object such as " *user "?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thank you very much!! You are Gandalf!!
RDAindividual *user = null;
while(reader->Read())
{
user = new RDAindividual(
Double::Parse(reader->Item
Double::Parse(reader->Item
Double::Parse(reader->Item
MessageBox::Show(user->get
} // end while
reader->Close();
if ( user != null ) // precaution: recordset may be empty
MessageBox::Show(user->get