Which kind of class pattern allows only one object of the class to be created throughout the program's lifetime? Identify the design that enforces single-instance control.

Difficulty: Easy

Correct Answer: Singleton class

Explanation:


Introduction:
Sometimes an application needs exactly one global access point to a resource—logging, configuration, or a device manager. This question targets the standard design pattern that enforces a single instance for a class.


Given Data / Assumptions:

  • We need at most one instance.
  • Global, controlled access is desired.
  • Language: C++.


Concept / Approach:
The Singleton pattern ensures only one object exists by controlling construction and providing a global accessor. Typical elements include a private constructor, a deleted copy/move, and a static function that returns a reference to the unique instance, often implemented as a function-local static for thread-safe initialization.


Step-by-Step Solution:
1) Make constructors private or protected.2) Delete copy/move operations to prevent cloning.3) Provide static T& instance() { static T obj; return obj; }4) Access via T::instance() and never via direct construction.


Verification / Alternative check:
Attempts to create additional instances should fail to compile or link; all users obtain the same object reference from the accessor.


Why Other Options Are Wrong:
Virtual class: C++ has virtual inheritance, not “virtual classes.”Abstract class: prevents instantiation altogether unless derived and completed.Friend class: an access control tool, not a single-instance mechanism.


Common Pitfalls:
Overusing singletons creates hidden dependencies and hinders testing. Prefer dependency injection; use a singleton only when global uniqueness is genuinely required.


Final Answer:
Singleton class

Discussion & Comments

No comments yet. Be the first to comment!
Join Discussion