Objekt Fernseher programmieren
-
int einaus;bool???
lautstaerke = lautstaerke + aenderung;+= ???
lautstaerke = lautstaerke + aenderung; if ((lautstaerke - aenderung)< 0){ lautstaerke =0; } else { lautstaerke = lautstaerke - aenderung; }Das ergibt keinen Sinn!
if ((einaus = 1) !=0)Das ergibt keinen Sinn!
return(lautstaerke);Keine Klammern nötig!
#include<iostream.h>#include<iostream> using namespace std;else if (einaus != 0) cout <<"Der Fernseher ist an"<<endl;Nur else hier nötig!
-
Danke AGS`ler...

Konstruktor darf ich noch nicht anwenden.
Wie kann oder muss ich denn "setlautstaerke" ändern damit Lautstaerke nur ausgegeben wird wenn der Fernseher an ist?
Und für was ist bool??? Hatte ich bis jetzt nicht...
-
Ich hab mir den Code da oben jetzt nicht angeschaut, ist mir zu unübersichtlich ohne die Tags^^
Aber bool ist eine Variable, die nur 2 Werte besitzen kann: True oder False.
Also z.b. bool is_on = false...
Überprüfen geht dann entweder über if(is_on) [Ist an] oder if(!is_on) [ist nicht an]
-
Indem du den gesamten Abschnitt in ein
if(einaus){...}(btw, der Variablenname ist Unsinn - 'ein' reicht völlig) einschließt.PS: Übrigens sollte die Methode getan() auch den Member 'einaus' setzen

-
#if !defined(TELEVISION_H__INCLUDED) #define TELEVISION_H__INCLUDED #include <string> #include <algorithm> class Television { public: Television() {} ~Television() {} public: unsigned short get_volumn() const { return m_nVolumn; } std::string get_channel() const { return m_sChannel; } bool power_on() const { return m_bPower; } public: void set_volumn(const unsigned int& volumn) { m_nVolumn = std::max<unsigned int>(volumn, 100); show_information(std::cout); } void set_channel(const std::string& channel) { m_sChannel = channel; show_information(std::cout); } void switch_on(const bool on) { m_bPower = on; show_information(std::cout); } void init() { m_nVolumn = 10; m_sChannel = "CNN"; } public: void show_information(std::ostream& of_stream) const { of_stream << "Fehrnseher ist " << (m_bPower == true ? "an" : "aus") << "!" << std::endl << "Kanal: " << m_sChannel << std::endl << "Lautstaerke: " << m_nVolumn << std::endl; } private: unsigned short m_nVolumn; std::string m_sChannel; bool m_bPower; }; #endif // TELEVISION_H__INCLUDED
Wenn du Fragen dazu hast ... nur zu 
-
Danke für die Erklärung The-Kenny...
Gut CStoll verstanden hab ich das aber an der Umsetzung hapert es da ich noch am Anfang mitm Programmieren stehe...
-
Hallo (D)Evil.
Netter Quelltext aber viel versteh ich davon leider noch nicht
-
m_bPower = on;
Das ist doch bool

Ich denke eher, m_bPower = true; ist gemeint^^
-
nein? Somit kannst du den auch mit der Funktion ausschalten ... erst denken dann schreiben

@Gohst Rider: guck es dir in Ruhe an und Frag dann, wenn du noch Sachen nicht verstehst ...
-
(D)Evil schrieb:
nein? Somit kannst du den auch mit der Funktion ausschalten ... erst denken dann schreiben

@Gohst Rider: guck es dir in Ruhe an und Frag dann, wenn du noch Sachen nicht verstehst ...
Argh bin ich blöd *g*
Stimmt, ich sollte wirklich erst denken, dann schreiben^^
-
Was noch nicht berücksichtigt wurde:
Das Einstellen soll zudem nur dann möglich sein, wenn der Fernseher eingeschaltet ist.
-->
void set_volume(unsigned volume) { if (m_bPower) { m_nVolume = std::min<unsigned>(volume, 100); show_information(std::cout); } } // etc.@(D)Evil: man sollte nicht "max" schreiben wo man "min" meint

p.S.: ein "unsigned int" als const-Referenz übergeben ist ... IMO komplett sinnfrei.
-
hustbaer schrieb:
ein "unsigned int" als const-Referenz übergeben ist ... IMO komplett sinnfrei.
Wunderschön gesagt!

@Gohst Rider:
Btw, wo lernst du???
-
Ich lerne bei der Studiengemeinschat Darmstadt...Warum ist das wichtig AGS`ler?
-
Sagt mal wie greife ich von "::ausgabe()" auf "::gatan(einaus)" zu??? Ihrgendwie will ich nicht dahinter kommen... Glaub ich brauch mal nen Tag abstand....Sonst dreh ich noch durch

-
Das sind beides Memberfunktionen, daher gibts kein "::ausgabe" und auch kein "::gatan". Lern C++.
-
hustbaer schrieb:
Lern C++.
Oh, du kannst dich aber nett ausdrücken!
Gohst Rider schrieb:
Sagt mal wie greife ich von "::ausgabe()" auf "::gatan(einaus)" zu???
Du willst von einer Methode aus eine Get-Methode der selben klasse aufrufen => Mach mal bitte ein Tutorial!
Gohst Rider schrieb:
Ich lerne bei der Studiengemeinschat Darmstadt
Aha, ich lerne an der http://www.ags-erfurt.de/ ( Empfehle ich allen Technik interessierten Thüringern )!
Gohst Rider schrieb:
Warum ist das wichtig AGS`ler?
Das btw bedeutet, dass es mir eben nicht wichtig ist => es war nur Smalltalk!
-
@AGS'ler:
Wo ist bitte der Unterschied ob ich jetzt "Lern C++." oder "Mach mal bitte ein Tutorial!" schreibe?
-
::getan() ist eine globale Funktion, die ich in keinenm bisher geposteten Code finden kann. Das könnte das Problem dabei sein, dass du sie nicht aufrufen kannst.
Aber probier doch einfach mal die Methode (also nur "getan()") aufzurufen. Vielleicht ist das das, was du willst?
-
hustbaer schrieb:
@AGS'ler:
Wo ist bitte der Unterschied ob ich jetzt "Lern C++." oder "Mach mal bitte ein Tutorial!" schreibe?Inhaltlich gleich, aber um deine Frage zu beantworten: Das Wörtchen BITTE!
-
Helium schrieb:
::getan() ist eine globale Funktion, die ich in keinenm bisher geposteten Code finden kann.
Erstes Posting!
Helium schrieb:
Aber probier doch einfach mal die Methode (also nur "getan()") aufzurufen. Vielleicht ist das das, was du willst?
Ich denke mal daran liegt es!
(D)Evil schrieb:
#if !defined(TELEVISION_H__INCLUDED)Hat es einen Grund, warum du kein
#ifndefverwendest???
PS(Hatte ich übersehen):
Der Parameter der Funktion getan() heist genau wie das Attribut der Klasse => das geht nicht ( Wie soll der PC wissen, welche Variable du meinst??? )!
Außerdem sollte ( , wie CStoll schon schrieb, ) die Methode getan() auch den Member 'einaus' setzen!!!