2016-07-13 5 views
1

ich drei einfache C++ Dateien erstellt haben, wie folgt: rtt_hello.hppFehler ‚Hat eine Art nicht nennen‘, während Klasse in eine .h und CPP-Datei zu trennen

#ifndef RTT_HELLO_HPP 
#define RTT_HELLO_HPP 

#include<iostream> 

class displayer 
{ 
    public: 
     void display(); 
}; 

#endif 

die Klassenimplementierung displayer.cpp Dann

#include <iostream> 
#include "rtt_hello.hpp" 
void displayer::display() 
{ 
    std::cout<<"Hello"; 
} 

Und schließlich das Hauptprogramm rtt_hello.cpp.I haben keine Haupt weil ich das Objekt in einer anderen Anwendung verwenden möchten.

#include<iostream> 
#include "rtt_hello.hpp" 

displayer message1; 
message1.display(); 

Nun, wenn ich diese kompilieren bekomme ich die Fehler

[email protected] ~/NewRockPort/x86/Build/rock/rtt_test $ /home/sambeet/NewRockPort/x86/Install/rtems/4.11.0-rc3/bin/i386-rtems4.11-g++ rtt_hello.cpp displayer.cpp -Ihome/sambeet/NewRockPort/x86/Build/rock/rtt_test/ 
rtt_hello.cpp:5:1: error: 'message1' does not name a type 
message1.display(); 
^ 

ich die Header erstellt und auch sie enthalten sind, dann warum dies dieser Fehler passieren?

Antwort

5

Sie können nicht einfach zufälligen Code in eine Datei einfügen (außerhalb jeder Funktion). Auf der obersten Ebene können Sie nur Zeug deklarieren/definieren. Ein Ausdruck wie message1.display() muss Teil einer Funktion sein.

Verwandte Themen