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

Write a program using GUI concept for the scheduling algorithms in Operating system like SJF,FCFS etc..

0 Answers  


Is c++ a float?

0 Answers  


Is c++ vector dynamic?

0 Answers  


which is the easy way to divide any integer by 2?

2 Answers   Persistent,


What are static and dynamic type checking?

0 Answers  






What is scope resolution operator in c++ with example?

0 Answers  


What is function overloading in C++?

0 Answers  


What is OOPs

12 Answers   CA,


5. Can inline functions have a recursion?

4 Answers  


What is a storage class used in c++?

0 Answers  


What is the difference between an enumeration and a set of pre-processor # defines?

0 Answers  


What is static function? Explain with an example

0 Answers  


Categories