2017-07-17 11 views
0

私はクラスを初めて別のファイルに置くというコンセプトをテストしています。これはメインファイルこのC++プログラムは何が実行されていませんか?

#include <iostream> 
    #include <string> 
    #include "newClass.h" 
    using namespace std; 

    int main() 
    { 
     newClass obj1("mayan"); 
     cout << obj1.doneName() << endl ; 


    } 

newClass.hが、これは別のヘッダファイル

#ifndef NEWCLASS_H 
#define NEWCLASS_H 

#include <iostream> 
#include <string> 
#include <string> 
class newClass{ 

private: 
    string name; 

public: 
    newClass(string z) ; 

    string doneName(); 

}; 


#endif // NEWCLASS_H 

であり、これは別のnewClass.cppある

main.cppにを助けてくださいファイル

#include "newClass.h" 
#include <iostream> 
#include <string> 

using namespace std; 
newClass::newClass(string z) 
{ 
    name = z ; 
} 

string newClass :: doneName() 
{ 
    return name; 
} 
+0

多くのことを実行していません。しかし、コンパイルしていない、リンクしていない、または実行していないという意味ですか? – Tas

+0

ヘッダーファイルで 'string'を' std :: string'に変更します –

+0

エラーを表示しています。 –

答えて

2

C++とそのcompilationについてもっと読む必要があります。 linkerについてもっと読む。

C++ソースファイルはtranslation unitで、通常はincludesのヘッダーファイルです。 preprocessorについて詳しくはこちらをご覧ください。

std::stringは、ヘッダーファイルにstringだけでなく、(using std;がヘッダーファイルに嫌われているため)使用することをお勧めします。

コンパイル時にすべての警告とデバッグ情報を有効にすることを忘れないでください。 GCCでは、g++ -Wall -Wextra -gを指定してコンパイルします。

実際には、複数の翻訳単位を含むプロジェクトを構築する場合は、のようなbuild automationツールを使用することをお勧めします。

IDEは、ビルド自動化ツール、コンパイラ、デバッガ、バージョンコントロールシステムなどの外部ツールを実行できることを嬉しく思っています。これらのツールをコマンドラインで使用することをお勧めします。

+0

Basileさん、ありがとうございました。 –

関連する問題