I have to create simple singleton object factory for some types of objects. The problem is that I can't find smart way to prevent user from creating object instances by constructors. I know that I can move constructors to private/protected section but how will the factory create new objects now when constructors are private/protected? Making factory a friend of every class isn't really smart as I need to predeclare factory in every header and write aditional "friend Factory;" in every class. How to do this correct?
C++ preventing user from creating object instances
420 Views Asked by Ava At
1
There are 1 best solutions below
Related Questions in C++
- C++ using std::vector across boundaries
- Linked list without struct
- Connecting Signal QML to C++ (Qt5)
- how to get the reference of struct soap inherited in C++ Proxy/Service class
- Why we can't assign value to pointer
- Conversion of objects in c++
- shared_ptr: "is not a type" error
- C++ template using pointer and non pointer arguments in a QVector
- C++ SFML 2.2 vectors
- Lifetime of temporary objects
- I want to be able to use 4 different variables in a select statement in c ++
- segmentation fault: 11, extracting data in vector
- How to catch delay-import dll errors (missing dll or symbol) in MinGW(-w64)?
- How can I print all the values in this linked list inside a hash table?
- Configured TTL for A record(s) backing CNAME records
Related Questions in OOP
- Access objects variable & method by name
- Why does compiler recognize while(true) at compile time but not if(true)
- Pass variables to extended class
- Cast a superclass type to a subclass type?
- Understanding difference in Swift properties for structs and classes in assignment
- Does exist any way to force child class to have at least one field with a specified attribute?
- Symfony : is it better to use a trait or an intermediary class to complete Controller one?
- (Java) What kind of argument is this? With a
- C++ Implementing a Queue of cars in OOP
- Inheritance in openERP (odoo)
- missing 1 required positional argument: 'key'
- how can Object class in ruby be an instance of it's subclass, class "Class"
- How to force others to obey a specific layout for a child class?
- Class variables in OOP
- define_method in a class method
Related Questions in DESIGN-PATTERNS
- Pass Data between two view controllers using 'Delegation' : Objective-C
- Revealing module pattern instantiation and naming convention
- Is using the same Redis instance for different applications against Separation of Concerns principle?
- Swift - Issue trying to access to Singleton object
- How to set data context of ViewModela View's xaml?
- How to use nested builder pattern in json?
- Is object casting a good practice?
- reference data class member visitor pattern
- variable global const "macros" in C++ and optimal design patterns
- How to design abstract listener and its implementation?
- DTOs with different granularity
- Object creation depending on caller
- What is the proper way to use inheritance when combined with factory method?
- Is this Java Enumeration Used/Designed Correctly?
- Design pattern for incremental code
Related Questions in SINGLETON
- Swift - Issue trying to access to Singleton object
- lazy loaded Singleton - will a static field call cause instantiation
- Can I access the same instance of a Service object without using Channel?
- What is the difference between a class wrapper and Java, and a singleton in Objective-C?
- Defining Macros that are equal to functions that return objects in C++
- How to create object/singleton of generic type in Scala?
- Prolog- singleton variable in branch warning
- Singleton in iOS Objective C doesn't prevent more than one instance
- visual studio cannot resolve static functions
- Unresolved external symbol (singleton class C++)
- Mage registry key "_singleton/tax/observer" already exists
- Function pointer to singleton class instance function
- trying to implement simple ostream singleton class
- Instance of Singleton null
- how can I recreate singleton class in java
Related Questions in OBJECTFACTORY
- Orika - Determining constructor call without registering an ObjectFactory
- Object Factory with limited base class
- Using custom ObjectFactory with JAXB: is there an established "go to" pattern?
- C++ object factory with built-in cache - shadows template parameter
- How do I generate multiple .xsd's into the same ObjectFactory?
- How to map an attribute of Type Object in ORIKA
- c++11 singleton of a derived class with an abstract factory
- C++ preventing user from creating object instances
- What is the ObjectFactory role during JAXB-Unmarshalling?
- Android: class file for javax.naming.spi.ObjectFactory not found - when I tried to integrate Hessian into Android
- Specify a `DataSource` factory instead of Tomcat's default
- Objective C : Given a Class id, can I check if this class implements a certain protocol? Or has a certain selector?
- How to generate several versions of Java classes generated by JAXB?
- How To Use ObjectFactory Generated By Jaxb?
- How to create dynamic instance when java web service client class exist with version number?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
In the class, add a static member as pointer to the same type of the class. This will be your singleton.
When initializing an instance, the constructor is ran.
If this is the first time, the static member is null (never initialized), run the constructor normally and set default values. In the end also set the static member to
this. Now your singleton is initialized.In subsequent constructor calls, the static pointer will not be null. Make a temporary pointer to the class type. Set this pointer to
this, then setthisto the static member and delete the pointer. This will delete the new instance and return the same static instance instead, everytime.