What if one can''t wrap the local in an artificial block?, C/C++ Programming

What if one can''t wrap the local in an artificial block?

Posted Date: 3/15/2013 5:33:50 AM | Location : United States





What if one can''t wrap the local in an artificial block?

A: Mostly time, one can limit the lifetime of a local via wrapping the local in an artificial block ({...}). But if for some cause you can''t do that, add a member function which has a similar effect as the destructor. Although do not call the destructor itself!

For instance, in the case of class File, you may add a close() method. The destructor typically will simply call this close() method. Note down that the close() method will have to mark the File object so a subsequent call won''t re-close an already-closed File. For example it might set the fileHandle_ data member to some nonsensical value like -1, and it may check at the starting to see if the fileHandle_ is already equal to -1:

 

class File {

public:

void close();

~File();

... private:

int fileHandle_; // fileHandle_ >= 0 if/only-if it''s open

};

File::~File()

{

close();

}

void File::close()

{

if (fileHandle_ >= 0) {

...insert code to call the OS to close the file... fileHandle_ = -1;

}

}

Note down that the other File methods might also have to check if the fileHandle_ is -1 (that mean., check if the File is closed).

Note down  also that any constructors that don''t actually open a file should set fileHandle_ to -1.

 

Posted by | Posted Date: 3/15/2013 5:35:15 AM


Related Discussions:- What if one can''t wrap the local in an artificial block?, Assignment Help, Ask Question on What if one can''t wrap the local in an artificial block?, Get Answer, Expert's Help, What if one can''t wrap the local in an artificial block? Discussions

Write discussion on What if one can''t wrap the local in an artificial block?
Your posts are moderated
Related Questions
how many bytes required to char

write a program to calculate the cuboid

what is the syntax to get a coloured output.

The Main program is slightly more complicated and you need to think about the I/O process. First of all, for most applications you do not call the low level routines GetChar and P

Car Rental System This system tracks cars in a rental company. Each car has a number (assume its plate number), type (small car, four wheel car), and status (rented, available). T

Inheritance is the process of forming new classes, called derived classes, from existing classes or base classes. The derived class inherits all the capabilities of the base class,

Friend for Overloading Operators Sometimes friend functions cannot be avoided. For example with the operator overloading. Consider the following class that have data members to

is getchar() is a C++ library function?

Project Description: I have a barber salon I am seeking someone to build me software for my PARTNER PT6910 touch screen till system. This software must add multiple staff login

A string is said to be "Beautiful"€, if it contains only non repetitive alphabets