Wpis z mikrobloga

@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*)
  • Odpowiedz
@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
  • Odpowiedz
@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?
  • Odpowiedz
@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)
  • Odpowiedz
@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.
  • Odpowiedz
@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
  • Odpowiedz