Skip to content
Related Articles

Related Articles

Improve Article
C++ | Misc C++ | Question 5
  • Difficulty Level : Medium
  • Last Updated : 21 Aug, 2013

How can we make a C++ class such that objects of it can only be created using new operator?

If user tries to create an object directly, the program produces compiler error.
(A) Not possible
(B) By making destructor private
(C) By making constructor private
(D) By making both constructor and destructor private


Answer: (B)

Explanation: See the following example.

// Objects of test can only be created using new
class Test
{
private:
    ~Test() {}
friend void destructTest(Test* );
};
 
// Only this function can destruct objects of Test
void destructTest(Test* ptr)
{
    delete ptr;
}
 
int main()
{
    // create an object
    Test *ptr = new Test;
 
    // destruct the object
    destructTest (ptr);
 
    return 0;
}

See https://www.geeksforgeeks.org/private-destructor/ for more details.

Quiz of this Question

Want to learn from the best curated videos and practice problems, check out the C Foundation Course for Basic to Advanced C.
My Personal Notes arrow_drop_up
Recommended Articles
Page :