Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 23:40

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



C++ Problem

Discussion on C++ Problem within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jun 2013
Posts: 10
Received Thanks: 0
C++ Problem

Hallo,

Ich bin grade dabei mir ein kleineres Spiel in C++ zu schreiben.
Hierbei bin ich aber leider wegen einem Fehler hängen geblieben:

Quote:
error C2143: Syntaxfehler: Es fehlt ';' vor '*'
und
Quote:
error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
Beide Fehler treten in folgender Datei bei der Deklaration von "*login" auf:
Code:
#ifndef MENU_MANAGER_H
#define MENU_MANAGER_H

#include <SFML\Graphics.hpp>

//Menüs inkludieren
#include "login.h"

enum Menus { Login, Character_Selection };

class menu_manager
{
	public:
		menu_manager(sf::RenderWindow *_window);
		menu_manager(sf::RenderWindow *_window, Menus _activeMenu);
		~menu_manager();

		void LoadData();
		void Update();
		void Render();
		void UnloadData();

	private:
		Menus activeMenu;
		sf::RenderWindow *window;

		login_menu *login;
};

#endif
Hier noch die inkludierten Header:
Code:
#ifndef LOGIN_MENU_H
#define LOGIN_MENU_H

#include "menu.h"

class login_menu : public menu
{
	public:
		login_menu(sf::RenderWindow *_window);
		~login_menu();

		void LoadData();
		void Update();
		void Render();
		void UnloadData();
};

#endif
Code:
#ifndef MENU_H
#define MENU_H

#include "menu_manager.h"

class menu
{
	public:
		void LoadData();
		void Update();
		void Render();
		void UnloadData();

	protected:
		sf::RenderWindow *window;
};

#endif
Irgendwie bin ich grade blind und sehe den Fehler nicht...
Midgards is offline  
Old 08/06/2013, 17:32   #2
 
.SkyneT.'s Avatar
 
elite*gold: 273
Join Date: Sep 2010
Posts: 1,831
Received Thanks: 786
In welcher Zeile treten die Fehler auf ?
.SkyneT. is offline  
Old 08/06/2013, 17:58   #3
 
elite*gold: 0
Join Date: Jun 2013
Posts: 10
Received Thanks: 0
Zeile 27
Midgards is offline  
Old 08/06/2013, 18:04   #4
 
.SkyneT.'s Avatar
 
elite*gold: 273
Join Date: Sep 2010
Posts: 1,831
Received Thanks: 786
Quote:
Originally Posted by Midgards View Post
Zeile 27
Wäre nett, wenn du das in dem geposteten Code irgendwie
kennzeichnest.
.SkyneT. is offline  
Old 08/06/2013, 18:10   #5
 
elite*gold: 0
Join Date: Jun 2013
Posts: 10
Received Thanks: 0
Code:
#ifndef MENU_MANAGER_H
#define MENU_MANAGER_H

#include <SFML\Graphics.hpp>

//Menüs inkludieren
#include "login.h"

enum Menus { Login, Character_Selection };

class menu_manager
{
	public:
		menu_manager(sf::RenderWindow *_window);
		menu_manager(sf::RenderWindow *_window, Menus _activeMenu);
		~menu_manager();

		void LoadData();
		void Update();
		void Render();
		void UnloadData();

	private:
		Menus activeMenu;
		sf::RenderWindow *window;

		login_menu *login; //Hier tritt der Fehler auf! <-----
};

#endif
Midgards is offline  
Old 08/06/2013, 18:29   #6
 
elite*gold: 0
Join Date: Sep 2010
Posts: 454
Received Thanks: 212
Welche Codes sind von welcher Datei?

E: Glaubt man den ifndefs, müsstest du noch "login_menu" inkludieren.
E2: Achso, login_menu ist login.h.
Zwawo is offline  
Old 08/06/2013, 18:35   #7
 
elite*gold: 0
Join Date: Jun 2013
Posts: 10
Received Thanks: 0
Ist eig. an den defines in der jeweils zweiten Zeile zu erkennen, aber hier nochmal alle mit Namen:

menu_manager.h
Code:
#ifndef MENU_MANAGER_H
#define MENU_MANAGER_H

#include <SFML\Graphics.hpp>

//Menüs inkludieren
#include "login.h"

enum Menus { Login, Character_Selection };

class menu_manager
{
	public:
		menu_manager(sf::RenderWindow *_window);
		menu_manager(sf::RenderWindow *_window, Menus _activeMenu);
		~menu_manager();

		void LoadData();
		void Update();
		void Render();
		void UnloadData();

	private:
		Menus activeMenu;
		sf::RenderWindow *window;

		login_menu *login;
};

#endif
menu.h
Code:
#ifndef MENU_H
#define MENU_H

#include "menu_manager.h"

class menu
{
	public:
		void LoadData();
		void Update();
		void Render();
		void UnloadData();

	protected:
		sf::RenderWindow *window;
};

#endif
login.h
Code:
#ifndef LOGIN_MENU_H
#define LOGIN_MENU_H

#include "menu.h"

class login_menu : public menu
{
	public:
		login_menu(sf::RenderWindow *_window);
		~login_menu();

		void LoadData();
		void Update();
		void Render();
		void UnloadData();
};

#endif
Bitte ^^
Midgards is offline  
Old 08/06/2013, 19:28   #8
 
elite*gold: 0
Join Date: Sep 2010
Posts: 454
Received Thanks: 212
In welcher Reihenfolge inkludierst du die header in deiner main.cpp?

Inkludier nur menu_manager.h, dann funktioniert es.
Oder zumindestens so, dass menu_manager.h der erste header ist.
Zwawo is offline  
Old 08/06/2013, 20:06   #9
 
Padmak's Avatar
 
elite*gold: 58
Join Date: Jun 2008
Posts: 2,311
Received Thanks: 8,420
Oder füge in der menu_manager.h oben
Code:
class login_menu;
ein

Padmak
Padmak is offline  
Old 08/06/2013, 20:07   #10
 
elite*gold: 0
Join Date: Jun 2013
Posts: 10
Received Thanks: 0
Hier meine aktuelle main.cpp
Code:
#include "menu_manager.h"

int main()
{
	sf::RenderWindow window(sf::VideoMode(1366, 768), "Neverending Storys!", sf::Style::Fullscreen);

	menu_manager manager(&window);

	manager.LoadData();

    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();

			manager.Update();
        }

		window.clear();
		manager.Render();
        window.display();
    }

	manager.UnloadData();

    return 0;
}
Danke Padmak!!!
Hat funktioniert!

Aber was genau war denn jetzt der Fehler?
Midgards is offline  
Old 08/07/2013, 12:23   #11
 
elite*gold: 0
Join Date: Aug 2012
Posts: 236
Received Thanks: 94
Streich das da in menu.h:
Code:
#include "menu_manager.h"
Dein Menü braucht nicht zu wissen, was ein Menüverwalter ist. Wenn dann einfach nur die Datei login.h inkludiert (hineinkopiert) wird, ist login_menu eben in jener Zeile unbekannt.

Davon abgesehen solltest du intelligente Zeiger verwenden und bei Vererbung die Schlüsselwörter virtual und override nicht vergessen. Außerdem gibt es die Möglichkeit, eine Methode als rein virtuell zu kennzeichnen.
Tasiro is offline  
Reply


Similar Threads Similar Threads
[Problem]Habe ein Problem und zwar spinnt mein VPC etwas(ohne Grund)?!
07/28/2011 - Metin2 Private Server - 10 Replies
Also wie schon gesagt meins Server spinnt wodurch kiks usw. kommen :( ich lade euch die Screens in den Anhang, mit der Hoffnung, dass ihr mir helfen könnt :) wäre echt sehr nice :)



All times are GMT +1. The time now is 23:40.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.