Subs (aus VB.NET) in c++ ?

02/18/2013 18:47 unknwnx.#1
Hey bin relativ ein Neuling in c++ und lerne im Moment die Switch Funktion!

Unzwar habe ich zur Übung folgendes:
Code:
#include "stdafx.h"
#include <string>
#include <iostream>
using namespace std;
int frage;



int _tmain(int argc, _TCHAR* argv[])
{
	cout << "Was bedeutet Elite in Nummern?!";
	       << endl;
	       << "Menue" << endl;
	       << "Voller Name = Peter               [1]" << endl;
	       << "Voller Name = 1337                [2]" << endl;
	       << "voller Name = Wannebe             [3]" << endl << endl;

	       << "Ihre Eingabe: ";

	cin >> frage;
	getchar();

	switch(frage)
	{
	case 1:
		cout << "Nein" << endl;
		getchar();
	break;

	case 2:
		cout << "Ja" << endl;
		getchar();
	break;

	case 3:
		cout << "Nein" << endl;
		getchar();
	break;

	default:
		cout << "Ungültige Eingabe!";
	break;
	}
}
Die switch Funktion würde ich jedoch gerne in einem Sub (aus VB.NET bekannt) einfügen, damit falls die Falsche Eingabe gewählt wird, ich die switch Funktion wieder aufrufen kann ohne das der Code eklig aussieht! (in Jedem Case nochmal der Switch.)
02/18/2013 18:59 Schlüsselbein#2
Du meinst wahrscheinlich eine Funktion. Lern weiter und überstüru nichts, das Thema wird schon noch früh genug drankommen.

Abgesehen davon würde mich interessieren, mit was du lernst, denn der Code ist schon ziemlich Mangelhaft: globale Variable, stdafx.h, using namespace std.

Mein Tipp: Leg dir n ordentliches Buch zu, denn so wird das nichts halbes und nichts ganzes.
02/18/2013 19:03 unknwnx.#3
Quote:
Originally Posted by Schlüsselbein View Post
Du meinst wahrscheinlich eine Funktion. Lern weiter und überstüru nichts, das Thema wird schon noch früh genug drankommen.

Abgesehen davon würde mich interessieren, mit was du lernst, denn der Code ist schon ziemlich Mangelhaft: globale Variable, stdafx.h, using namespace std.

Mein Tipp: Leg dir n ordentliches Buch zu, denn so wird das nichts halbes und nichts ganzes.
Globale Variabel ist extra gemacht, war im Tutorial (Ja Youtube Tutorials xD, "c++ von A bis Z" ist schon bestellt.) nicht so =).
btw: was ist an "using namespace std;" so schlimm? selbstverständlich könnt ich ja "std::cin >>" benutzen ist doch aber relativ überflüssig, oder nicht?
02/18/2013 19:06 Schlüsselbein#4
Soll von dem was ich so gehört habe, echt nicht schlecht sein. Tu dir nur selber den gefallen und lass den Youtube-Dreck weg, bis dein Buch da ist. Nachher wirst du dir sonst noch schwer tun, diesen ziemlich bescheidenen Stil wieder zu verlernen.
02/18/2013 19:19 nkkk#5
du solltest nicht using "stdafx.h" als magelhafen code bezeichnen, auch wenn ich es selbst nicht benutzte und einem anfänger nicht unbedingt empfehlen würde, gibt es einen grund warum es das gbt.
02/18/2013 19:23 unknwnx.#6
Quote:
Originally Posted by nkkk View Post
du solltest nicht using "stdafx.h" als magelhafen code bezeichnen, auch wenn ich es selbst nicht benutzte und einem anfänger nicht unbedingt empfehlen würde, gibt es einen grund warum es das gbt.
Bin deiner Meinung lieber zu viele Bibliotheken importieren, als dann vergeblich die richtige Bibliothek für einen Befehl zu suchen.
Ebenso warum soll stdafx.h schlecht sein? Immerhin ist es da um das Compiling zu verschnellern!
02/18/2013 21:34 MrSm!th#7
Quote:
Originally Posted by Schlüsselbein
using namespace std.
Naja, das ist auch in guten Büchern keine Seltenheit und, solange es nur am Anfang so ist und später erklärt wird, dass und warum es schlecht ist, finde ich das nicht schlimm.

Quote:
Originally Posted by kRAYNE :x View Post
Bin deiner Meinung lieber zu viele Bibliotheken importieren, als dann vergeblich die richtige Bibliothek für einen Befehl zu suchen.
Ebenso warum soll stdafx.h schlecht sein? Immerhin ist es da um das Compiling zu verschnellern!
stdafx ist keine Bibliothek, sondern für vorkompilierte Header gedacht. Das ist bei Anfänger-Projekten völlig irrelevant, deine Programme werden sowieso in wenigen Sekunden compilen. Dagegen kann es des Öfteren mal Fehler werfen, wenn man nicht weiß, wie man mit dem Header umzugehen hat.
02/18/2013 23:25 MoepMeep#8
Bin ich der einzige, der ihn am liebsten für die benennung seiner variable aufhängen würde? :|
02/18/2013 23:48 .SkyneT.#9
Quote:
Originally Posted by kRAYNE :x View Post
Globale Variabel ist extra gemacht, war im Tutorial (Ja Youtube Tutorials xD, "c++ von A bis Z" ist schon bestellt.) nicht so =).
btw: was ist an "using namespace std;" so schlimm?
Weil es dann zu Doppeldeutigen Benennungen kommen kann. (= Error)

Aber man kann das ja so lösen:
Code:
using std::cout;
using std::cin;
using std::endl;
Dann kannst du auch cout/cin/endl schreiben, hast aber das Problem
mit der Doppeldeutigkeit nicht.
02/19/2013 04:44 Delinquenz#10
Quote:
"c++ von A bis Z"
Laut vielen Leuten soll das ein schlechtes Buch sein. Der Author soll sich (alles nur Gerüchte, habe das nicht gelesen) angeblich andauernd selbst wiedersprechen und benutzt recht viel C, was in einem C++ Buch m.E. nicht vorkommen sollte.

Vorkompilierte Header würde ich weglassen.
02/19/2013 12:31 Mi4uric3#11
Quote:
Originally Posted by kRAYNE :x View Post
Hey bin relativ ein Neuling in c++ und lerne im Moment die Switch Funktion!

Unzwar habe ich zur Übung folgendes:
Code:
#include "stdafx.h"
#include <string>
#include <iostream>
using namespace std;
int frage;



int _tmain(int argc, _TCHAR* argv[])
{
	cout << "Was bedeutet Elite in Nummern?!";
	       << endl;
	       << "Menue" << endl;
	       << "Voller Name = Peter               [1]" << endl;
	       << "Voller Name = 1337                [2]" << endl;
	       << "voller Name = Wannebe             [3]" << endl << endl;

	       << "Ihre Eingabe: ";

	cin >> frage;
	getchar();

	switch(frage)
	{
	case 1:
		cout << "Nein" << endl;
		getchar();
	break;

	case 2:
		cout << "Ja" << endl;
		getchar();
	break;

	case 3:
		cout << "Nein" << endl;
		getchar();
	break;

	default:
		cout << "Ungültige Eingabe!";
	break;
	}
}
Die switch Funktion würde ich jedoch gerne in einem Sub (aus VB.NET bekannt) einfügen, damit falls die Falsche Eingabe gewählt wird, ich die switch Funktion wieder aufrufen kann ohne das der Code eklig aussieht! (in Jedem Case nochmal der Switch.)
Nett, was hier alles disktuiert wird, aber wirklich geholfen hat dir niemand.

Funktionen werden folgendermaßen deklariert:
PHP Code:
Modifizierer RückgabeTyp Funktionsname(Parameterliste
Dabei ist der Rückgabetyp "void" eine VB.Net -> "Sub", alles andere eine VB.Net "Function".

Beispiel:

PHP Code:
public static void stelleFrage() {
    
cout << "Was bedeutet Elite in Nummern?!";
           << 
endl;
           << 
"Menue" << endl;
           << 
"Voller Name = Peter               [1]" << endl;
           << 
"Voller Name = 1337                [2]" << endl;
           << 
"voller Name = Wannebe             [3]" << endl << endl;

           << 
"Ihre Eingabe: ";

    
cin >> frage;
    
getchar();

    switch(
frage)
    {
    case 
1:
        
cout << "Nein" << endl;
        
getchar();
    break;

    case 
2:
        
cout << "Ja" << endl;
        
getchar();
    break;

    case 
3:
        
cout << "Nein" << endl;
        
getchar();
    break;

    default:
        
cout << "Ungültige Eingabe!";
    break;
    }

oder mit Rückgabewert
PHP Code:
public static char stelleFrage() {
    
cout << "Was bedeutet Elite in Nummern?!";
           << 
endl;
           << 
"Menue" << endl;
           << 
"Voller Name = Peter               [1]" << endl;
           << 
"Voller Name = 1337                [2]" << endl;
           << 
"voller Name = Wannebe             [3]" << endl << endl;

           << 
"Ihre Eingabe: ";

    
cin >> frage;
    return 
frage;

welche die Antwort des Nutzers zurückgeben würde.


Anwendung:
PHP Code:
int _tmain(int argc_TCHARargv[]) {
    
stelleFrage(); // um die void Funktion aufzurufen
    
char antwort stelleFrage(); // um die mit dem char-Rückgabetyp aufzurufen.

02/19/2013 14:26 unknwnx.#12
Quote:
Originally Posted by Mi4uric3 View Post
Nett, was hier alles disktuiert wird, aber wirklich geholfen hat dir niemand.

Funktionen werden folgendermaßen deklariert:
PHP Code:
Modifizierer RückgabeTyp Funktionsname(Parameterliste
Dabei ist der Rückgabetyp "void" eine VB.Net -> "Sub", alles andere eine VB.Net "Function".

Beispiel:

PHP Code:
public static void stelleFrage() {
    
cout << "Was bedeutet Elite in Nummern?!";
           << 
endl;
           << 
"Menue" << endl;
           << 
"Voller Name = Peter               [1]" << endl;
           << 
"Voller Name = 1337                [2]" << endl;
           << 
"voller Name = Wannebe             [3]" << endl << endl;

           << 
"Ihre Eingabe: ";

    
cin >> frage;
    
getchar();

    switch(
frage)
    {
    case 
1:
        
cout << "Nein" << endl;
        
getchar();
    break;

    case 
2:
        
cout << "Ja" << endl;
        
getchar();
    break;

    case 
3:
        
cout << "Nein" << endl;
        
getchar();
    break;

    default:
        
cout << "Ungültige Eingabe!";
    break;
    }

oder mit Rückgabewert
PHP Code:
public static char stelleFrage() {
    
cout << "Was bedeutet Elite in Nummern?!";
           << 
endl;
           << 
"Menue" << endl;
           << 
"Voller Name = Peter               [1]" << endl;
           << 
"Voller Name = 1337                [2]" << endl;
           << 
"voller Name = Wannebe             [3]" << endl << endl;

           << 
"Ihre Eingabe: ";

    
cin >> frage;
    return 
frage;

welche die Antwort des Nutzers zurückgeben würde.


Anwendung:
PHP Code:
int _tmain(int argc_TCHARargv[]) {
    
stelleFrage(); // um die void Funktion aufzurufen
    
char antwort stelleFrage(); // um die mit dem char-Rückgabetyp aufzurufen.

Danke :D

#Closerequest
02/19/2013 17:41 MrSm!th#13
public static void...
ist übrigens kein C++, sondern Java.

#closed