Funkcja zwracająca wartości z klasy

Funkcja zwracająca wartości z klasy
K1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
0

Co należy poprawić aby poniższy program wyświetlał wartości "zmienna" oraz x ?

Kopiuj
#include <iostream>
using namespace std;

class Klasa{
int x = 5; 
public:
static bool zmienna;
friend void getX(Klasa &)
{ ...
}
};
bool Klasa::zmienna=true;
int main()
{
Klasa k;
cout << Klasa::zmienna << " " <<k.getX()<< endl;
} 
Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

No ale tam nie masz funkcji funkcja.

K1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
0

oczywiście chodziło o wartości x oraz wartości "funkcja" (był błąd który już jest poprawiony)

twonek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2500
1
Kopiuj
friend int getX(const Klasa& k)
{
    return k.x;
}
...
cout << Klasa::zmienna << " " << getX(k)<< endl;
K1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
0

Mam jeszcze problem z dość podobnym zadaniem, dlatego nie zakładam nowego tematu. Problem polega na tym że przy uruchomieniu wyświetlają się złe wartości. Również proszę o pomoc.

Kopiuj
#include <iostream>
using namespace std;
class licze
{
public:
int pojedynczo;
static int razem;
void powieksz()
{
this->razem += 1;
this->pojedynczo += 1;
}
};
int licze::razem = 0;
int main()
{
licze jeden;
licze dwa;
licze trzy;
jeden.powieksz();
jeden.powieksz();
dwa.powieksz();
trzy.powieksz();
dwa.powieksz();
jeden.powieksz();
cout << "razem wykonano " << jeden.razem
<< " wynosi" << jeden.pojedynczo
<< " wynosi " << dwa.pojedynczo
<< " wynosi " << trzy.pojedynczo << endl;
}
Websplash
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 61
1

Nie zerujesz zmiennej składowej w swojej klasie. Dodaj np. taki konstruktor z listą inicjalizacyjną:

Kopiuj
licze()
    : pojedynczo(0)
{

}

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.