Voisko joku vähän avittaa tuossa summan tulostuksessa...Saan nimittäin vastaukseksi 0?!
Tehtävässä on kirjoitettu valmiiksi pääohjelma, sekä luokka "Laskin". Sinun tehtäväsi on laatia luokka "Tulostaja", joka kysyy käyttäjältä kaksi kokonaislukua, kutsuu luokan "Laskin" metodia "Summa()" välittäen metodille syötteenä saadut kokonaisluvut. Metodi "Summa()" laskee lukujen summan ja palauttaa tuloksen. Lopuksi metodi "Tulosta()" tulostaa saadun summan näytölle.
#include using namespace std; class Laskin { public: int Summa(int eka, int toka); }; int Laskin::Summa(int eka, int toka) { int summa = eka toka; return summa; } class Tulostaja { public: void Tulosta(); int eka,toka,summa; }; void Tulostaja::Tulosta() { cout << "Syötä ensimmäinen kokonaisluku:"; cin >> eka; cout << "Syötä toinen kokonaisluku:"; cin >> toka; cout << "Lukujen summa:" << summa << endl; } int main() { Tulostaja olio; olio.Tulosta(); }
Esimerkkitulostus
Syötä ensimmäinen kokonaisluku:23
Syötä toinen kokonaisluku:43
Lukujen summa: 66 (Minun tulostukseni näyttää...Lukujen summa:0)!!!!
Tuosta puuttuu nopeasti katsoen plusmerkki eka toka välistä.
edit: Tosin ei se mulla edes käännyt ilman
test.cc: In member function ‘int Laskin::Summa(int, int)’: test.cc:13:17: error: expected ‘,’ or ‘;’ before ‘toka’ int summa = eka toka;
Ja sit toisekseen et kutsu missään välissä tuota Summa-funktiota. Kun tulostat summa -muuttujan, niin saat arvon, joka muuttujassa on ollut alusta alkaen. (Kääntäjästä ja ympäristöstä riippuen 0 tai jokin satunnainen arvo muistista)
En tiedä minkä takia tuossa koodissa ei näy + merkkiä, mulla nimittäin näkyy.
Mut siis eikse riitä että kutsun sen tuossa vaiheessa (näin olen ymmärtänyt);
cout << "Lukujen summa:" << summa << endl;
Tuossa kohdassa et kutsu Laskin -luokan Summa -funktiota, vaan käytät Tulostaja -luokassa määriteltyä summa -muuttujaa.
Ehdotan että poistat kokonaan riviltä 23 muuttujan summa määrittelyn niin se ei turhaan hämää.. Eli siis
--- int eka,toka,summa; +++ int eka,toka;
(Toinen koodia kopioidessasi tapahtunut virhe (sen plussan puuttumisen lisäksi) lienee <iostream> puuttuminen #include jälkeen.)
Kiitos avusta sain ongelman korjattua!
Aihe on jo aika vanha, joten et voi enää vastata siihen.