Difficulty: Easy
Correct Answer: A destructor has no return type.
Explanation:
Introduction / Context:Destructors finalize an object's lifetime and release resources. Their syntax is constrained to ensure predictable cleanup. This question focuses on what a destructor may return.
Given Data / Assumptions:
Concept / Approach:By the C++ standard, a destructor has no return type and cannot return a value. Writing any return type (e.g., void) is ill-formed because the grammar fixes destructor declarations to the ~ClassName() form only. Control may leave the destructor normally or by throwing an exception (which is strongly discouraged), but there is never a return value.
Step-by-Step Solution:1) Consider a valid form: struct T { ~T(); };2) Attempt to write void ~T(); → compilation error: return type not permitted.3) Likewise, int ~T(); is invalid for the same reason.4) Therefore the only correct statement is that a destructor has no return type.
Verification / Alternative check:Compile test snippets with various faux return types on destructors; compilers reject them according to the grammar.
Why Other Options Are Wrong:Void/integer/same as main/boolean: all contradict the fixed grammar for destructors.
Common Pitfalls:Attempting to signal cleanup errors via a destructor return value. Use exception-safe design (prefer noexcept destructors) and RAII so failure paths are explicit outside destructors.
Final Answer:A destructor has no return type.
Discussion & Comments