Tutorials
Resources
Forum
Reviews
Communities
Interview
Jobs
Projects
Training
Your
Ad
Here
Silverlight Games
|
Mentor
|
Code Converter
|
Articles
|
Code Factory
|
Computer Jokes
|
Members
|
Peer Appraisal
|
IT Companies
|
Bookmarks
|
Polls
|
Revenue Sharing
|
Lobby
|
Gift Shop
|
Prizes & Awards
My Profile
Sign In
Register
AdSense Revenue
Active Members
Today
Pawan
(80)
Deepika Harida...
(57)
Prafulla
(52)
Last 7 Days
Alwyn
(739)
nishithraj
(512)
Manindra Upadh...
(438)
more...
Resources
»
Code Snippets
»
General
»
Overloadeing new operator for the Names class using c++
Posted Date: 24 Aug 2009
Resource Type:
Code Snippets
Category:
General
Author:
Santosh Kumar Singh
Member Level:
Gold
Rating:
Points
: 4
////////////////////////////////////////
#include
#include
#include
#include
const int maxnames = 5;
////////////////////////////////////////
// The Names class.
////////////////////////////////////////
class Names
{
char name[25];
static char Names::pool[];
static bool Names::inuse[maxnames];
public:
Names(char* s)
{ std::strncpy(name, s, sizeof(name)); }
void* operator new(size_t) throw(bad_alloc);
void operator delete(void*) throw();
void display() const
{ std::cout << name << std::endl; }
};
// Simple memory pool to handle fixed number of Names.
char Names::pool[maxnames * sizeof(Names)];
bool Names::inuse[maxnames];
// Overloaded new operator for the Names class.
void* Names::operator new(size_t) throw(bad_alloc)
{
for (int p = 0; p < maxnames; p++)
{
if (!inuse[p])
{
inuse[p] = true;
return pool+p*sizeof(Names);
}
}
throw bad_alloc();
}
// Overloaded delete operator for the Names class.
void Names::operator delete(void* p) throw()
{
if (p != 0)
inuse[((char*)p - pool) / sizeof(Names)] = false;
}
////////////////////////////////////////
// The main() function.
////////////////////////////////////////
int main()
{
Names* nm[maxnames];
int i;
for (i = 0; i < maxnames; i++)
{
std::cout << std::endl << "Enter name # "
<< i+1 << ": ";
char name[25];
std::cin >> name;
nm[i] = new Names(name);
}
for (i = 0; i < maxnames; i++)
{
nm[i]->display();
delete nm[i];
}
return 0;
}
Responses
Author:
Miss Meetu Choudhary
27 Aug 2009
Member Level:
Diamond
Points
: 2
Must add description to your code.
Feedbacks
Popular Tags
What are tags ?
Search Tags
Sign In
to add tags.
Overloadeing new operator for the Names class using c++
.
Post Feedback
This is a strictly moderated forum. Only approved messages will appear in the site. Please use 'Spell Check' in Google toolbar before you submit.
You must
Sign In
to post a response.
Next Resource:
Deletes all array elements in c++
Previous Resource:
Example of New operator overloading in c++
Return to Discussion Resource Index
Post New Resource
Category:
General
Post resources and
earn money
!
More Resources
Static list Head and tail pointer in c++
Add the entry to the linked list using c++
To lock and unlock a folder
Custom Date private members and forwarding reference to compiler in c++
Convert Date to CustomDate via assignment,function argument,initializer andreturn value(c++)
Quicksort code using c++
dotNet Slackers
About Us
Contact Us
Privacy Policy
Terms Of Use