使用字符串时的C ++未知覆盖说明符

时间:2015-12-29 15:58:23

标签: c++ string

我现在试图解决这个问题很长一段时间了:

我有以下课程(博士):

Doctor.h:

    #pragma once
    class Doctor
    {
    private:
         string firstName;
    public:
        Doctor();
        ~Doctor();
    };

Doctor.cpp:

    #include "stdafx.h"
    #include "string"
    #include "Doctor.h"

    using namespace std;

    Doctor::Doctor()
    {
    }


    Doctor::~Doctor()
    {
    }

和我的主要功能:

   #include "stdafx.h"
   #include <string>
   #include "Doctor.h"

   using namespace std;

   int main()
   {
       return 0;
   }

错误C3646'lirstName':未知覆盖说明符

错误C4430缺少类型说明符 - 假设为int。注意:C ++不支持default-int

错误C3646'lirstName':未知覆盖说明符

错误C4430缺少类型说明符 - 假设为int。注意:C ++不支持default-int

所有在Doctor.h的第5行,我声明了一个字符串变量

2 个答案:

答案 0 :(得分:7)

也许

<string> header is missing.

尝试加入它。

Doctor.h

#ifndef DOCTOR_H_
#define DOCTOR_H_

#include <string>

class Doctor{
    std::string name;
public:
    Doctor();
    ~Doctor();
};
#endif

Doctor.cpp

#include "Doctor.h"

Doctor::Doctor()
{
}

Doctor::~Doctor()
{
}

Main.cpp的

#include "Doctor.h"
int main()
{
    return 0;
}

工作正常。我已经测试了。

答案 1 :(得分:5)

您需要#include <string>中的Doctor.h,并且您需要标准名称空间std::string