C ++错误C2143语法错误:缺少“;”在“使用命名空间”之前

时间:2017-08-20 22:49:44

标签: c++

这是我的代码:

#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”:

#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_

错误的编号为C2143,并表示缺少:“;”之前: <使用命名空间“ 中的第4行main.cpp ,我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

类定义必须以分号结尾。

所以,class Animal{...};