Wektor w singletonie.
Ostatnio zmodyfikowano 2017-05-24 14:56
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. #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(); } |
|
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. |
|
michal11 |
» 2017-05-22 09:51:56 Dlaczego męczysz się z wskaźnikami? Nie lepiej skorzystać z referencji? Singleton & GetInst() { static Singleton inst; return inst; }
|
|
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. |
|
michal11 |
» 2017-05-22 15:57:13 Nigdy nie tworzyłeś obiektu. |
|
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. |
|
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 |
|
« 1 » |