Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Zsumowanie parametru klasy,ze zmienną globalną,

Ostatnio zmodyfikowano 2015-07-30 14:08
Autor Wiadomość
Max_150
Temat założony przez niniejszego użytkownika
Zsumowanie parametru klasy,ze zmienną globalną,
» 2015-07-29 12:58:21
Mam spory problem,a dotyczy on mianowicie takiej sytuacji.

Np. Mam obiekt klasy "Cards",Dama 10(int points),1(int ID),D(string Figura),i NP. "s",niech to będzie kolor.
I co dalej?ZA jasne licho nie mogę zrobic metody,która sumowała by jedynie Wartość POINTS,obiektu Dama.

Czyli,mam już system losowania,wylosuje się dama,to przepuścić ją przez jakąć metodą,która do globalnej sumy punktów,doda 10,bo taka jest wartość tej karty.Wszystko jest oczywiści jak na razie robione w konsoli.Nie mam pojęcia,jak z metody zwrócić tylko wartości zmiennej odpowiadającą za ilość punktów w danej karcie,i musiało by to zostać zsumowane do zmiennej dostępnie globalnie,nawet nie wiem czy tak się da,więc piszę.Oczywiście tak prosty program,dało by się inaczej zrobić,ale po to sie klass uczyłem,żeby jakoś o pogodzić.

Wie ktoś??To jest glówny problem,cytuje sam siebie "jak z metody zwrócić tylko wartości zmiennej odpowiadającą za ilośćpunktów w danej karcie,i musiało by to zostać zsumowane do zmiennej dostępnie globalnie"

Kodu nie wklejam,bo jest tam taki burdel,że szkoda czasu na tłumaczenie co za co odpowiada(Nie pogubiłem się,myślę że opisałem w czym problem,więc nie trzeba nic innego,jak wytłumaczenia nawet na innym przykładzie,jak to uzyskać.)
P-135379
pekfos
» 2015-07-29 13:37:24
"jak z metody zwrócić tylko wartości zmiennej odpowiadającą za ilośćpunktów w danej karcie
Dosłownie tak, jak sam to określiłeś.
C/C++
int Cards::getPoints() const
{
    return points;
}
P-135382
Max_150
Temat założony przez niniejszego użytkownika
» 2015-07-29 14:36:01
Niewiele mi to obecnie mówi,jestem padnięty,mimo "wczesnej godziny",wcześniej wstałem i po kilkunastu godzinach,mało mi to mówi.

Ok,wiem o co ci biega,zwócić,to nie problem,a jak to teraz dodać do określonej zmiennej dostępnej globalnie???Tu jest problem.
P-135388
pekfos
» 2015-07-29 14:42:30
Poważnie..?
C/C++
zmiennaGlobalna += karta.getPoints();
P-135389
Max_150
Temat założony przez niniejszego użytkownika
» 2015-07-29 14:54:17
C/C++
#include <QCoreApplication>
#include <iostream>
#include <string>
using namespace std;

int General_Player_Points;


class Cards
{
    int points;
    string figure;
    char color;
   
public:
   
    Cards( int P, string F, char C )
    {
        points = P;
        figure = F;
        color = C;
    }
    void Add_Points()
    {
       
        General_Player_Points += Cards::points;
       
    }
   
   
   
   
};
int main( int argc, char * argv[] )
{
   
   
   
    Cards Two( 2, "II", 'V' );
    Two.Add_Points();
    cout << General_Player_Points;
   
    QCoreApplication a( argc, argv );
    return a.exec();
}
To pomaga,nie kropka,tylko operator zasięgu,aż dziwne że to tak proste,5h sie meczyłem,tworząc dzieła sztuki żeby sie to dodało.
To jest oczywiście uproszczonu,w 4min napisany przykład,żeby to przetestować,ale działa,więc w oryginale też powinno.


PS.W oryginale działa również,aż szkoda że działa,a to dla tego że ja użyłem podanej przez kolegę wyżej porady,tylko że brakowało "=",było arg.1+ClassName::Arg2,zamiast arg.1+=ClassName::Arg2,i przez to DZIADOSTWO tyle czasu w piach poszło.
Nic,ważne że się udało,nie?

A powie mi ktoś,co się dzieje,jak jest sam plus,czemu się to nie dodaje?I gdzie to trafia?
P-135390
pekfos
» 2015-07-29 15:16:51
(Jak się tu cytuje kod???)
Powinieneś to wiedzieć.

C/C++
General_Player_Points += Cards::points;
Cards:: jest niepotrzebne.

jak jest sam plus,czemu się to nie dodaje?I gdzie to trafia?
Dodaje się, ale wynik nie jest nigdzie zapisywany.
P-135394
michal11
» 2015-07-29 20:11:29
Dodam tylko, że przy operacji
a + b
 tworzona jest zmienna tymczasowa zawierająca wynik tego dodawania która od razu jest usuwana, dlatego nic ci się nie dodawało/zapisywało.

Co do twojego rozwiązania to uważam, że jest dość słabe, zmienna globalna jest w ogólne nie potrzebna, chyba najlepiej by było jak byś zmienna do której chcesz sumować przesyłał jako argument funkcji Add_Points(). Czyli mniej więcej tak wyglądałaby deklaracja:
Add_Points( int suma );
P-135410
pekfos
» 2015-07-29 20:31:59
chyba najlepiej by było jak byś zmienna do której chcesz sumować przesyłał jako argument funkcji Add_Points().
A jakby chodziło tylko o pobranie wartości, to zmienna z zerem i wywołać sumowanie? Trochę za dużo kombinowania, gdy można wyciągnąć wartość przez jakiegoś geta i zrobić z nią, co się tylko chce. Znacznie lepsze, niż robić milion metod do wykonywania operacji matematycznych w ograniczonej formie.

C/C++
Add_Points( int suma );
Referencja.
P-135412
« 1 » 2
  Strona 1 z 2 Następna strona