2017-08-20 12 views
-5

は、これは私のコードです:C++エラーC2143構文エラー: "" 「使って名前空間」の前に

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

using namespace std; 

int main() { 
    Animal animal1; 
    animal1.setName("Klinton"); 

    Animal animal2 = animal1; 
    animal2.speak(); 
    animal2.setName("Freddy"); 
    animal2.speak(); 

    return 0; 
} 

そして、このためのコードを次のとおりです。「Constructors.h」:エラー番号C2143を持っており、そこにあると言ってい

#ifndef _CONSTRUCTORS_H_ 
#define _CONSTRUCTORS_H_ 
#include <string> 
class Animal { 
private: 
    std::string name; 
public: 
    Animal() { cout << "Animal created." << endl; } 
    Animal(const Animal& other): name(other.name) { cout << "Animal created copying." << endl; } 
    void setName(std::string name) { this->name = name; } 
    void speak() const { cout << "My name is: " << name << endl; } 

} 

#endif // !_CONSTRUCTORS_H_ 

a missing:";" before:"namespaceを使用" main.cppで "名前空間を使用して"を使用してください。どうすればこの問題を解決できますか?

+7

あなたは不足しているセミコロン... – Rakete1111

+1

'class'または' struct'宣言が '決算セミコロンを持っている必要がありますを追加する必要があります;'。単純なタイプミスについての質問は_off-topic_です。ここで質問をする前に[基本についての本](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)を読むことを検討してください。 – user0042

+0

"namespaceを使用する前に"とは、インクルードファイルの末尾を意味します... –

答えて

1

クラス定義は、セミコロンで終わらなければなりません。

ので、class Animal{...};

+0

downvoterは説明できますか? – Cuber

+0

確かに:https://stackoverflow.com/questions/45787465/c-error-c2143-syntax-error-missing-before-using-namespace#comment78532687_45787465 – user0042

+0

さて、私の回答はあなたがコメントする前に8秒前に投稿されました。私の答えはどのように役に立たないのですか? – Cuber

関連する問題