wskaźnik do std::vector
Ostatnio zmodyfikowano 2016-10-06 10:54
qrchack Temat założony przez niniejszego użytkownika |
wskaźnik do std::vector » 2016-10-05 15:31:42 Witam serdecznie! Czy jest możliwe, przekazanie wskaźnika do wektora będącego elementem jednej klasy do innej klasy? Mam coś takiego: class System { klasa1 * k1; klasa2 * k2; void ustawhaczyk() { k2->ustawhaczyk( k1->dawajhaczyk() ); } }
class k1 { std::vector < k3 *> TablicaK3; std::vector * dawajhaczyk( void ) { return & TablicaK3; } }
class k2 { std::vector * < k3 *> haczyknatablice; void ustawhaczyk( std::vector * haczyk ) { haczyknatablice = haczyk; } }
Czy coś takiego wogóle jest możliwe? Pytam ZANIM zacznę przebudowywać kod, czy wogóle jest sens, a jesli nie, to czy można coś w tym stylu zastosować? |
|
Gibas11 |
» 2016-10-05 16:50:16 Możesz tak zrobić, tylko gwiazdkę wstaw po szablonie przy deklaracji. std::vector < typ > * ptr; |
|
mateczek |
» 2016-10-05 17:36:19 chya raczej zaleca się obudować klasę k1 w metody dostępu do vectora (piszę chyba bo nie czuję się kompetentny by coś mówić na 100%) oczywiście wszystko zależy od sytuacji #include <iostream> #include<vector> using namespace std; class K1 { public: vector < int > w; void odczytaj() { for( int a: w ) cout << a << " "; cout << endl; } }; class K2 { vector < int > * w; public: K2( vector < int > * _w ) { w = _w; } void wypelni() { for( int i = 0; i < 10; i++ ) w->push_back( i ); } };
int main() { K1 k1; K2 k2( & k1.w ); k2.wypelni(); k1.odczytaj(); } |
|
qrchack Temat założony przez niniejszego użytkownika |
» 2016-10-06 10:54:02 @Gibas11 Dla pewności, czy dobrze rozumiem... std::vector < k3 *> tablicaK3; mogę zostawić jak jest, nie muszę deklarować jako wskaźnik? wskażnik zwracam dobrze? W sensie, czy ok jest: std::vector * dawajhaczyk( void ); czy trzeba jednak std::vector < k3 *> * dawajhaczyk( void ); No bo rozumiem, że w klasie k2 ma być std: vector < k3 *> * haczyk; Dobrze rozumiem ? ;) |
|
« 1 » |