Difficulty: Easy
Correct Answer: Copy Destructor
Explanation:
Introduction / Context:
C++ compilers may implicitly declare or define certain special member functions when the programmer does not supply them. Knowing which are real and which are mythical helps avoid confusion. This question asks you to identify a non-existent concept among common terms.
Given Data / Assumptions:
Concept / Approach:
The compiler can implicitly provide: a default (zero-argument) constructor, a destructor, a copy constructor, a copy assignment operator, and, in modern C++, move operations when conditions permit. There is no such thing as a “copy destructor.” A destructor has a fixed signature and cannot be “copied.”
Step-by-Step Solution:
1) List real special members: default ctor, dtor, copy ctor, copy assignment, and possibly move ctor/assignment.2) Identify the imposter: “Copy Destructor”.3) Conclude that the only option not provided (indeed, not a thing) is the copy destructor.4) Select “Copy Destructor”.
Verification / Alternative check:
Check any C++ reference: the catalog of special member functions never includes a copy destructor.
Why Other Options Are Wrong:
Default constructor / destructor / copy constructor: all may be implicitly generated by the compiler.Move constructor: in eligible situations, modern compilers can generate it too; it still exists as a concept.
Common Pitfalls:
Assuming the default constructor is always generated; it is suppressed if you declare any constructor. Also, implicit generation may be deleted depending on member types.
Final Answer:
Copy Destructor
Discussion & Comments