2011-01-18 13 views
1

C++で何かを書く必要があります。私は仮想関数に問題があります。仮想関数に関するC++の問題

Error 4 error C2371: 'Human::Age' : redefinition; different basic types c:\users\jan\desktop\testc\testc\human.cpp 5 1 TestC 
Error 3 error C2556: 'Human Human::Age(void)' : overloaded function differs only by return type from 'int Human::Age(void)' c:\users\jan\desktop\testc\testc\human.cpp 5 1 TestC 
Error 2 error C2628: 'Human' followed by 'int' is illegal (did you forget a ';'?) c:\users\jan\desktop\testc\testc\human.cpp 4 1 TestC 
+3

一般に、コンストラクタとデストラクタ(非抽象クラスなど)を持つクラスに仮想関数がある場合は、デストラクタを仮想として宣言することもできます。 –

答えて

16

あなた:私はこれらのコンパイルエラーを取得

#include<iostream> 
#include "Human.h" 

int Human::Age() 
{ 
    return 0; 
} 

:私はこれを持って

class Human 
{ 
    public: 
     virtual int Age(); 
     Human(); 
     ~Human(); 
} 

ファイルHuman.cppで:ヘッダファイルHuman.hで例えば

、私はこれを持っていますクラス定義を終了することを忘れた;

これはおそらくエラーが離れて行くようになります

class Human 
{ 
public: 
    virtual int Age(); 
    Human(); 
    ~Human(); 
}; 

をお読みください。また、常にコンパイラの出力を読む:Error 2 error C2628: 'Human' followed by 'int' is illegal (did you forget a ';'?) c:\users\jan\desktop\testc\testc\human.cpp 4 1 TestC

+0

ソーリーそれは私の間違いでした.Cでは#あなたは置く必要はありません。私は疲れていました。助けてくれてありがとう、私はばかだよ:( –