Kód: Vybrať všetko
#include <iostream>
#include <cstring>
using namespace std;
class trieda
{
private:
char najomnik[30];
public:
char * pristupnajomnik ();
void nastavnajomnika ( char pristup[30] );
};
char * trieda::pristupnajomnik()
{
return najomnik;
}
void trieda::nastavnajomnika(char pristup[30])
{
strncpy ( najomnik, pristup, 30 );
}
int main()
{
trieda pokus;
char vstup[30];
cin.getline ( vstup, 30 );
pokus.nastavnajomnika ( vstup );
cout << pokus.pristupnajomnik();
system ( "pause" );
return EXIT_SUCCESS;
}
Takto je to opravené tak, aby to šlo. Ale aj tak to nie je šťastné riešenie. Minimálne by som použil dynamickú alokáciu pamäte. Ale to je v tomto prípade tiež kontraproduktívne, lebo to stačí napísať takto:
Kód: Vybrať všetko
#include <iostream>
#include <string>
using namespace std;
class trieda
{
private:
string najomnik;
public:
string pristupnajomnik();
void nastavnajomnika ( string pristup );
};
string trieda::pristupnajomnik()
{
return najomnik;
}
void trieda::nastavnajomnika ( string pristup )
{
najomnik = pristup;
}
int main()
{
trieda pokus;
string vstup;
getline ( cin, vstup );
pokus.nastavnajomnika ( vstup );
cout << pokus.pristupnajomnik();
return 0;
}
Ale úplne najlepšie by som to ešte zmenil takto:
Kód: Vybrať všetko
#include <iostream>
#include <string>
using namespace std;
class trieda
{
private:
string najomnik;
public:
const string & pristupnajomnik();
void nastavnajomnika ( const string & pristup );
};
const string & trieda::pristupnajomnik()
{
return najomnik;
}
void trieda::nastavnajomnika ( const string & pristup )
{
najomnik = pristup;
}
int main()
{
trieda pokus;
string vstup;
getline ( cin, vstup );
pokus.nastavnajomnika ( vstup );
cout << pokus.pristupnajomnik();
return 0;
}
Keď pochopíš tento posledný kus kódu, potom určite zvládneš urobiť aplikáciu
(Dobre, úplne najlepšie by som to prepísal úplne inak, ale toto len tak na ukážku...)