Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wektor w singletonie.

Ostatnio zmodyfikowano 2017-05-24 14:56
Autor Wiadomość
krainamodu
Temat założony przez niniejszego użytkownika
Wektor w singletonie.
» 2017-05-21 22:45:30
Program wysypuje się przy próbie wczytania i wyświetlenia danych z wektora.
C/C++
#include<iostream>
#include<vector>
#include<string>
using namespace std;

class Singleton
{
    static Singleton * ptr;
    Singleton()
    {
        ptr = this;
    }
    vector < int > vec;
public:
    static Singleton * inst()
    {
        if( ptr == nullptr )
             Singleton();
       
        return ptr;
    }
    void wypiszVek() {
       
        for( int i = 0; i < vec.size(); i++ )
        {
            cout << vec[ i ] << endl;
        }
    }
    void dodaj()
    {
        ptr->vec.push_back( 3 );
        ptr->vec.push_back( 75 );
       
    }
};
Singleton * Singleton::ptr = nullptr;
int main()
{
    Singleton * wsk = Singleton::inst();
    wsk->dodaj();
    wsk->wypiszVek();
   
   
    cin.get();
}
P-161402
mokrowski
» 2017-05-21 23:52:32
Mała podpowiedź (ale nie wszystkie jeszcze błędy). Tam gdzie masz
Singleton();

powinno być:

ptr = new Singleton();

A w konstruktorze nie powinno być nic.

Ale jak pisałem to nie wszystkie jeszcze błędy.
P-161403
michal11
» 2017-05-22 09:51:56
Dlaczego męczysz się z wskaźnikami? Nie lepiej skorzystać z referencji?
C/C++
Singleton & GetInst()
{
    static Singleton inst;
    return inst;
}
P-161406
krainamodu
Temat założony przez niniejszego użytkownika
» 2017-05-22 13:42:41
W jednym z poradników widziałem podejście ze wskaźnikami i teoretycznie też powinno działać. Jak użyłem referencji to działa. Tylko dalej jestem ciekawy co poszło nie tak z tymi wskaźnikami.  
P-161413
michal11
» 2017-05-22 15:57:13
Nigdy nie tworzyłeś obiektu.
P-161417
Monika90
» 2017-05-22 16:07:55
Kod pochodzi z "Od zera do gier kodera" i jest nieprawidłowy. A obiekt został utworzony i natychmiast zniszczony.
P-161418
crash
» 2017-05-24 14:56:51
Metody dodaj i wypisz nie powinny być statyczne?

https://stackoverflow.com/questions/1008019/c-singleton-design-pattern

https://msdn.microsoft.com/en-us/library/ee817670.aspx

Google: C++ singleton example
P-161525
« 1 »
  Strona 1 z 1