Tällaista tehtävää yritän ratkoa, mutta ei onnistu eikä opetusmateriaalista tunnu vastausta löytyvän. Osaisko joku selittää ja opastaa eteenpäin?
Tehtävänanto oli tällainen:
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. Alla olevaa koodia ei siis tarvitse kopioida palautuskenttään.
Esimerkkitulostus on tällainen:
Syötä ensimmäinen kokonaisluku:23
Syötä toinen kokonaisluku:43
Lukujen summa: 66
Pitäisi siis kaiketi pystyä kutsumaan toisen luokan metodista ensimmäisen luokan metodia, enkä keksi miten se tehdään. Vai onko tuossa jotain muutakin vikaa?
Alla lähtötietona annettu koodi sekä väliin lisättynä oma yritelmäni.
#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;
}
// minun koodi tämän kommentin alapuolella
class Tulostaja
{
public:
void Tulosta();
};
void Tulostaja::Tulosta()
{
int ekaluku, tokaluku;
cout > ekaluku;
cout > tokaluku;
cout
c++ ja olio-ohjelmoinnin perusteita
6
1417
Vastaukset
- c++
Korvaa rivi:
cout- iron64
Se on helppoa kun osaa. Ei olisi minulle heti tullut mieleen.
- Tää on helppoo!
iron64 kirjoitti:
Se on helppoa kun osaa. Ei olisi minulle heti tullut mieleen.
Ei toimi: Tulostaja pitää joko periyttää Laskimesta tai sitten Tulostajalla pitää olla Laskin-tyyppinen ominaisuus, jota Tulostaja käyttää.
- keksa1
Tää on helppoo! kirjoitti:
Ei toimi: Tulostaja pitää joko periyttää Laskimesta tai sitten Tulostajalla pitää olla Laskin-tyyppinen ominaisuus, jota Tulostaja käyttää.
määrittelee Summa() funktion static määreellä, jolloin luokan instanssia ei tarvitse erikseen luoda.
Sitten voi kutsua Laskin.Summa() - dx
Sen laskimen voinee myös lisätä luokkaan jäsenmuuttujaksi näin, mikä voi olla enemmän sitä mitä tehtävässä haetaan:
class Tulostaja
{
public:
void Tulosta();
private:
Laskin laskin;
};
Jolloin suoraan pitäisi toimia:
cout - d
keksa1 kirjoitti:
määrittelee Summa() funktion static määreellä, jolloin luokan instanssia ei tarvitse erikseen luoda.
Sitten voi kutsua Laskin.Summa()tai sitten: Laskin::Summa(), jos Summa on staattinen.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Aivosyöpää sairastava Olga Temonen TV:ssä - Viimeinen Perjantai-keskusteluohjelma ulos
Näyttelijä-yrittäjä Olga Temonen sairastaa neljännen asteen glioomaa eli aivosyöpää, jota ei ole mahdollista leikata. Hä912900Pelotelkaa niin paljon kuin sielu sietää.
Mutta ei mene perille asti. Miksi Venäjä hyökkäisi Suomeen? No, tottahan se tietenkin on jos Suomi joka ei ole edes soda2991676Mikä saa ihmisen tekemään tällaista?
Onko se huomatuksi tulemisen tarve tosiaan niin iso tarve, että nuoruuttaan ja tietämättömyyttään pilataan loppuelämä?2461547- 871391
IL - VARUSMIEHIÄ lähetetään jatkossa NATO-tehtäviin ulkomaille!
Suomen puolustuksen uudet linjaukset: Varusmiehiä suunnitellaan Nato-tehtäviin Puolustusministeri Antti Häkkänen esittel4021374Nyt kun Pride on ohi 3.0
Edelliset kaksi ketjua tuli täyteen. Pidetään siis edelleen tämä asia esillä. Raamattu opettaa johdonmukaisesti, että3981292Kiitos nainen
Kuitenkin. Olet sitten ajanmerkkinä. Tuskin enää sinua näen ja huomasitko, että olit siinä viimeisen kerran samassa paik21079Esko Eerikäinen tatuoi kasvoihinsa rakkaan nimen - Kärkäs kommentti "Ritvasta" lävähti somessa
Ohhoh! Esko Eerikäinen on ottanut uuden tatuoinnin. Kyseessä ei ole mikä tahansa kuva minne tahansa, vaan Eerikäisen tat381037Hyväksytkö sinä sen että päättäjämme ei rakenna rauhaa Venäjän kanssa?
Vielä kun sota ehkäpä voitaisiin välttää rauhanponnisteluilla niin millä verukkeella voidaan sanoa että on hyvä asia kun329874Miksi Purra-graffiti ei nyt olekkaan naisvihaa?
"Pohtikaapa reaktiota, jos vastaava graffiti olisi tehty Sanna Marinista", kysyy Tere Sammallahti. Helsingin Suvilahden257855