Re: C++ Object and Class *****
In article
<871d35c7-4ea0-43cb-9792-2ce361bca0b3@t9g2000prh.googlegroups.com>,
Kumar Anurag <anurag.it.jolly@gmail.com> wrote:
On Mar 22, 11:36?pm, "AnonMail2...@gmail.com" <anonmail2...@gmail.com>
wrote:
On Mar 22, 2:18?pm, Kumar Anurag <anurag.it.jo...@gmail.com> wrote:
Implement a class which can only have two objects e.g. obj1,obj2.Now
when obj3 is created ,then obj1 should get destroyed.. This process
will be repeated . It means at any instant we will have only two
objects.
I did is using copy constructor is it right??
#include<iostream>
using namespace std;
class A{
? public:
? ? ?A(A& Old){
? ? ? ?Old.~A();//here we destroyed the old object2("b")
? ? ? ?}
};
int main()
{
?A a; //Object1
?A b; //Object2
?A c(b);//Suppose i want to create object3 "c"
? ? ? ? //Here we pass that object in parameter which we want to get
? ? ? ? //Destroyed (here i want Object2("b") to get destroyed;
return 0;}
/*whenever i need to create new object i will pass as
Format:-> A newObject(oldObject);
*/
is it correct??/
At the very least, you can't do this with objects that have been
allocated on the stack. ?When you exit scope, I think your b instance
will be destructed a second time.
Perhaps you can do this for heap allocated objects, but I would ask
what are you really trying to accomplish?
Suppose we have a game in which only 2 players can play at a time. Now
3rd player wants to enter, then one of them should leave , and the 3rd
player will take the place. Players are here instances (objects) .How
this can be done??
You can re-initialize one of your objects by giving it a reset
member-function or using the assignment operator:
int main() {
A a;
A b;
// use 'b' for awhile, then it's time to replace it:
b = A();
// or
b.reset();
}