@glonstar: nieprawda char name [] = "name" zadziala poprawnie tam jest problem, ze nie jest inicjowany literalem tylko, ze const jest podawany jako argument i jest to niebezpieczne.
i nalezy pamietac, ze co innego oznacza char name[40] = "name" i co innego oznacza char *name = "name"; (w nowym c++ wymusza sie w tym 2 wypadku const char name*)
@glonstar: @Kaczus2B: @WektorWlasny: Mam pytanie jeszcze jedno. Czy taki sposób jest ok? Czy jeśli funkcja jest poza klasą to raczej powinienem zrobić ją funkcją zaprzyjaźnioną (ewentualnie użyć set i get co do zmiennej points zamiast "gotowca" add_points)?
@James0n: zaprzyjaznienia nalezy uzywac jak najrzadziej. To raczej mozliwosc w razie czego (czyli jesli zajdzie rzeczywista potrzeba, a nie mozna za bardzo wiecej nic zrobic) i jesli juz trzeba, to raczej jako funkcja widoczna prywatnie tylko w jednym module, tak by ewentualne problemy zminimalizowac. Chodzi o to, by dane hermetyzowac jak najbardziej dane, aby nie bylo przypadkowych wartosci, szczegolnie, jak okaze sie, ze dane winny byc zalezne w jakis sposob
@Kaczus2B: Mhm, czyli taki sposób co jest na załączonym przeze mnie screenie jest raczej zgodny ze sztuką? Nie jest to tak, że lepszą opcją jest używanie w takiej sytuacji krok po kroku getterów i setterów?
@James0n: To jest kwestia bardziej czytelnosci - wazne, aby setter/getter czy inaczej nazwana metoda byla wlasciwie interpretowana, przez przegladajacego Twoj kod (albo ciebie za kilka lat), dobrze, by kompilator potrafil tez stworzyc z tego dobry kod, zawsze to jest jakis kompromis (aczkolwiek, obecne kompilatory potrafia zadziwic, wiec raczej stawia sie na czytelnosc, poza wyjatkami)
@James0n: jak chcesz robić takie coś to najlepiej jest zrobić metodę void Team::match(Team& team2, int result), a następnie wolną funkcję void match(Team& team1, Team& team2, int result) {team1.match(team2, result);}. Co do potrzeby użycia tego to wydaje mi się, że masz zły design: imo drużyna jest złym miejscem na trzymanie wyników o meczu.
@Saly: Ale w obiekcie drużyna nie trzymam wyniku meczu. To byłoby bezsensowne tak jak napisałeś :D Zmienna result jest po prostu wartością, którą wpisuję jako parametr przy jej wywołaniu
#korsir #odyn @Korsir serduszkujesz komentarz, w którym ktoś wychwycił jak SAM NAGRAŁEŚ I WRZUCIŁEŚ W INTERNET twoją dziewczynę, a potem zgłaszasz posty jak ktoś to wrzuci tutaj? Na youtube już i tak widziało ją jakieś 30 tysięcy osób. Życzę ci żeby ci zabrali monetyzację
#programowanie #cpp
źródło: comment_hbK7yCxOJxPZJ2KGrEnbeGMQQ6tje6Dv.jpg
PobierzKomentarz usunięty przez autora
char name[40] = "name"char name [] = "name" zadziala poprawnie
tam jest problem, ze nie jest inicjowany literalem tylko, ze const jest podawany jako argument i jest to niebezpieczne.
i nalezy pamietac, ze co innego oznacza char name[40] = "name" i co innego oznacza char *name = "name"; (w nowym c++ wymusza sie w tym 2 wypadku const char name*)
@Kaczus2B: To akurat wywali błąd, bo nie może być pojedynczy char w podwójnych cudzysłowach.
char * namewinno byc - pewnie nie ujecie w apostrofy * usuneloźródło: comment_lT1r2PECPOTwejqORZxkr2jm5LQfWZ9N.jpg
Pobierz