Problem mit Konstruktor



  • Hallo liebe Forengemeinde,

    ich versuche gerade mir in meiner wenigen Freizeit das Programmieren mit Visual C++ selbst beizubringen.
    Ganz unbedarft bin ich nicht, da ich seit einigen Jahren Industrierobotern das Arbeiten lehre.
    Nun habe ich allerdings ein kleines (grosses?) Verständnisproblem.
    Wenn ich Definition und Deklaration einer Klasse in der Headerdatei einbinde, wird mir das Projekt ohne irgendwelche Meldungen erstellt.
    Lagere ich nun die Definition vom header in die ccp, bricht der Compiler mit folgendem Fehler ab.

    becher.cpp(14) : error C2275: 'std::string': Ungültige Verwendung dieses Typs als Ausdruck
    

    Im Header steht folgendes:

    #pragma once
    
    #include<iostream>	
    #include<string>
    
    class Becher
    {
    	std::string inhalt;		
    	int fassungsvermoegen;	
    	float fuellhoehe;
    	public:
    		Becher(std::string i, int fa, float fu);
    /*	        {							//Dieser Teil wurde ausgelagert in Becher.ccp
    			inhalt=i;
    			fassungsvermoegen=fa;
    			fuellhoehe=fu;
    			}*/
    		void ausgabe();
    };
    

    in der dazugehörenden ccp

    #include "Becher.h"
    #include<iostream>
    #include<string>
    
    using namespace std;
    
    void Becher::ausgabe()	
    {
    	cout <<"Becher beinhaltet " <<inhalt <<endl;
    
    }
    int main()
    {
    	Becher::Becher(string i, int fa, float fu)	//Hier soll der Fehler sein 
    	{
    		inhalt=i;
    		fassungsvermoegen=fa;
    		fuellhohe=fu;
    	}	
    
    	cout <<endl;
    	system("pause");
    }
    

    Könnte mir da einer ein wenig auf die Sprünge helfen?
    Ich habe keinen Plan mehr dahingehend was mir der Compiler da genau sagen möchte oder wo ich den Hebel noch ansetzen könnte.

    Danke im Voraus und ein schönes Wochenende
    Roland



  • Nimm die Definition des Konstruktors aus der main Funktion raus. Ansonstens siehts ok aus.



  • *Ups* 🙄
    Was für ein Fehler.
    Danke ihoernchen 👍


Log in to reply