Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 9087367
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 16, 20262026-06-16T21:41:01+00:00 2026-06-16T21:41:01+00:00

Let’s assume I have a singleton class: class Singleton { public: static Singleton* getInstance();

  • 0

Let’s assume I have a singleton class:

class Singleton {
public:
    static Singleton* getInstance();
    void doit();
    std::vector<Object*>& getVector();

private:
    std::vector<Object*> _vector;
    static Singleton *instance;
    Singleton();
    ~Singleton();
    Singleton(const Singleton&);
};

class Delegator {
public:
        void main();
}
  • In the doit method I populate the _vector with pointers to objects.
  • In the main() from the Delegator class, I call getVector() and display the results.

Given this abstraction, I have the following questions:

  1. Can I delete all the pointers to instances of Object in the main() from Delegator (after displaying the results). If yes, is this recommended?
  2. Does the singleton ever get destroyed? In other words, will the reference returned in getVector() always be valid?
  3. I return a reference to a vector instead of a copy of the vector in getVector(). Given that the vector only contains pointers to objects and will not modify the vector content outside the Singleton class, is there any efficiency gained from returning a reference?

Thank you in advance

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-16T21:41:01+00:00Added an answer on June 16, 2026 at 9:41 pm

    My first answer to the question you didn’t ask is this:

    Do not use Singleton. It’s an anti-pattern. It makes the code it touches worse. It kills testability and makes it harder to modify your program in the future.

    This really excellent article talks in great detail about why Singleton is a bad idea.

    To answer the questions you did ask…

    1. Yes, you can. Of course, those pointers will still be in the vector so the vector will now contain a ton of dangling pointers. So you ought to clear out the vector too.
    2. With the code you have it will never be destroyed. By some definitions that makes your Singleton a memory leak. So yes, the reference will always be valid.
    3. Yes, there is a huge performance improvement to returning a reference. Copying a vector means making a copy of all the elements in the vector. Note that this means all the pointers will be copied, not the Objects they point to. Additionally, if you return a copy and have the main function delete all the pointers you are absolutely guaranteed to have a vector lying around with a whole ton of dangling pointers in it.
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Let's say I have the following entity: public class Store { public List<Product> Products
Let's say that I have classes like this: public class Parent { public int
Let's assume I have the following typedef: typedef void (^myBlock)(id); And I have some
Let me try again.. I have two classes: class OrdenO { public int id_orden_O
Let me explain best with an example. Say you have node class that can
Let's say for a moment that I have the following module in python: class
Let's say I have one class User, and it has a property of type
Let's say you have a class library project that has any number of supplemental
Let's say I have an abstract parent class called shape, and that there are
Let suppose I have this class diagram in UML: How can I do, in

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.