Do we have private destructors?

Answers were Sorted based on User's Feedback



Do we have private destructors?..

Answer / sampurna pandey

yes, we can have both private constructor and destructor
and can use them with help of static function for example

class Base
{
static int i;
Base(){}
~Base(){}
public:
static Base *Creat_Object();
static void Destroy_Object(Base *p);
void Add()
{
cout<<i<<" Add function"<<endl;
}
};

int Base::i=0;
Base* Base::Creat_Object()
{
Base * ptr = new Base();
i=5;
return ptr;
}

void Base::Destroy_Object(Base *p)
{
delete p;
}

void main()
{
Base *temp = Base::Creat_Object();
temp->Add();
Base::Destroy_Object(temp);
}

correct me if i am wrong.

Is This Answer Correct ?    21 Yes 3 No

Do we have private destructors?..

Answer / guest

RE: #1

You can have private constructors. It's pretty common
practice when you create a class which you want to never be
constructed with "new" from outside the class (for example,
if you have a static factory member of the class).

Is This Answer Correct ?    10 Yes 1 No

Do we have private destructors?..

Answer / vaibhav meena

We can have Private Destructor and by using Friend Function
we can also instantiate it. :)

Is This Answer Correct ?    6 Yes 0 No

Do we have private destructors?..

Answer / subrat

Hi all,

Please visit this url for more clarity on "Private
destructors"

http://www.codeguru.com/cpp/cpp/cpp_mfc/stl/article.php/c414
3/

Is This Answer Correct ?    1 Yes 0 No

Do we have private destructors?..

Answer / binoy mathew

#include <iostream>
#include <stdlib.h>

class t
{
public:
t()
{
printf("in constr");
}

private: // note that constructor is private here
~t()
{
printf("in destr");
}
};


int main()
{
t *t1 = new t; // create a new obj
delete t1; // delete the obj, which calls destructor
return 0;
}

Try to compile the above code.
following error results...

[root@localhost Desktop]# g++ test.cpp
test.cpp: In function ‘int main()’:
test.cpp:13: error: ‘t::~t()’ is private
tt.cpp:: error: within this context
[root@localhost Desktop]#

....implies, we can't have destructor private.

Is This Answer Correct ?    1 Yes 3 No

Do we have private destructors?..

Answer / shakti singh khinchi

U can't instantiate instance of that class.

Is This Answer Correct ?    0 Yes 3 No

Do we have private destructors?..

Answer / dhananjay

no

Is This Answer Correct ?    2 Yes 5 No

Do we have private destructors?..

Answer / vishwa

we cannot say it destructors are not private. because for
empty class if we use delete operator then it is going to
delete the destructor which is private.

Is This Answer Correct ?    0 Yes 8 No

Do we have private destructors?..

Answer / thuang

In replay to Vishwa,

for empty class, compiler will supply a default constructor
and a destructor for us, their access modifiers were public.

Is This Answer Correct ?    0 Yes 8 No

Do we have private destructors?..

Answer / pooja

no we do not have private destructors because the
destructors can be declared only in public access
specifier.

Is This Answer Correct ?    1 Yes 11 No

Post New Answer

More C++ General Interview Questions

Who created c++?

0 Answers  


Can you please explain the difference between overloading and overriding?

0 Answers  


what kind of projects are suitable for c and c++

0 Answers  


What is OOPs

12 Answers   CA,


Why was c++ made?

0 Answers  






Why is c++ considered difficult?

0 Answers  


Why c++ is faster than java?

0 Answers  


Can there be at least some solution to determine the number of arguments passed to a variable argument list function?

0 Answers  


Explain the isa and hasa class relationships.

0 Answers  


If dog is a friend of boy, is boy a friend of dog?

0 Answers  


What is the difference between struct and class?

1 Answers  


Can we sort map in c++?

0 Answers  


Categories