类类型重定义错误

时间:2018-03-03 11:45:22

标签: c++ visual-studio class

创建类的对象时出现错误 "错误C2011' dateType':' class'类型重新定义"  我已经多次检查过我的班级,而且我似乎没有弄清楚错误的原因

dateType.h

    #include <iostream>;
#include<string>;

using namespace std;

class dateType {
public:
    dateType();
    ~dateType();
    void setDate(string, int, int);

    void printDate()const;



private:
    string  day;
    int month;
    int year;

};

dateType.cpp

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



dateType::dateType()
{
    cout << "please imput day,month,year";
    cin >> day >> month >> year;
}


dateType::~dateType()
{
}

void dateType::setDate(string d, int m, int y) {
    day = d;
    if (m <= 12)month = m;
    else { month = 0; year++; }
    year = y;


}
void dateType::printDate()const{
    cout << "day : \n" << day;
    cout << "month : \n" << month;
    cout << "year : \n" << year;

}

谢谢。

1 个答案:

答案 0 :(得分:0)

他们的问题通过添加解决了 #programa once 所以代码看起来像这样:

<强> dateType.h

#pragma once
#include <iostream>
#include<string>



class dateType {
public:
    dateType();
    ~dateType();
    void setDate();

    void printDate()const;



private:
    std::string  day;
    int month;
    int year;

};

<强> dateType.cpp

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



dateType::dateType()
{

}


dateType::~dateType()
{
}

void dateType::setDate()
{
    string d;
    int m;
    int y;
    cout << "please imput day,month,year";
    cin >> d >> m >> y;
    day = d;
    if (m <= 12)month = m;
    else { month = 0; year++; }
    year = y;


}
void dateType::printDate()const{
    cout << "day : "<< day<<endl;
    cout << "month : " << month<<endl;
    cout << "year : " << year<<endl;

}

还删除了using namespace std;。 如果有人遇到同样的错误,我希望这会有所帮助。

谢谢。