2016-02-19 183 views
-1

所以我有这个练习是创建一个默认的构造函数DayOfYear,它将有一天设置为1月1日。所以该构造它会主要有以下称为:默认构造函数C++头和cpp

int main() 
{ 
    DayOfYear someDay; 

    someDay.output(); 
    return 0; 
} 

所以我有这样的标题:

#include <iostream> 
#include <cstdlib> 
class DayOfYear 
{ 
public: 
    int month; 
    int day; 
    void output(); 
    DayOfYear(); 

}; 

及以下CPP:

#include <iostream> 
#include <cstdlib> 
#include "DayOfYear.h" 
using namespace std; 

DayOfYear::DayOfYear() :month(1), day(1) 
{ 

} 

所以我越来越许多错误,我已经尝试了很多东西,但我不知道有什么问题。这些错误是;

In file included from main.cpp:2:0: 
DayOfYear.h:9: error: ISO C++ forbids declaration of ‘output’ with no type [-fpermissive] 
DayOfYear:: output(); 
        ^
DayOfYear.h:9: error: extra qualification ‘DayOfYear::’ on member ‘output’ [-fpermissive] 
DayOfYear:: output(); 
^ 
In file included from DayOfYear.cpp:3: 
DayOfYear.h:9: error: ISO C++ forbids declaration of ‘output’ with no type [-fpermissive] 
DayOfYear:: output(); 
        ^
DayOfYear.h:9: error: extra qualification ‘DayOfYear::’ on member ‘output’ [-fpermissive] 
DayOfYear:: output(); 
+1

最好是有'诠释month'等私人 - 然后使用getter/setter方法 –

+3

哪里是'无效输出()'定义是什么? –

+6

您的错误消息似乎与您所显示的代码不符。 – NathanOliver

回答

-1

你的主要源文件不包括其中DayOfYear声明的头文件,所以它不知道DayOfYear/output /等。甚至是。

+0

错误消息与此不符。我认为我们仍然缺少来自OP的一些信息。 (不是下来的投票人) – NathanOliver

+0

从错误消息中可以明显看出'#include'指令存在,并且代码是摘录。 –

+0

对我来说这个错误开始看起来像是存在一个std :: output函数,但对于这个特定的代码,肯定存在缺失的信息和不一致的信息,所以这是我最好的猜测。 :) –

0

我无法回答你所得到的错误消息的问题。我使用完全不同的编译器,但是,这应该可以解决你的问题,并且应该可以在任何标准编译器上工作。

尝试编写类这样:

DayOfYear.h

#ifndef DAY_OF_YEAR_H 
#define DAY_OF_YEAR_H 

class DayOfYear { 
private: 
    int m_day; 
    int m_month; 

public: 
    DayOfYear(); // Default Constructor 
    explicit DayOfYear(int month = 1, int day = 1); // Constructor With Default Arguments 

    void setDay(int day); 
    void setMonth(int month); 

    int getDay() const; 
    int getMonth() const; 

    void display() const; 

private: 
    DayOfYear(const DayOfYear& c); // Not Implemented 
    DayOfYear& operator=(const DayOfYear& c); // Not Implemented 
}; // DayOfYear 

#endif // DAY_OF_YEAR_H 

DayOfYear.cpp

#include <iostream> 
#include <cstdlib> 
#include "DayOfYear.h" 

// DayOfYear() - Default Constructor 
DayOfYear::DayOfYear() : 
m_day(1), 
m_month(1) { 
} // DayOfYear 

// DayOfYear() - Constructor with default parameters 
// If no values are passed it will default to 1-1 
DayOfYear::DayOfYear(int month, int day) : 
m_day(day), 
m_month(month) { 
} // DayOfYear 

// setDay() 
void DayOfYear::setDay(int day) { 
    m_day = day; 
} // setDay() 

// setMonth() 
void DayOfYear::setMonth(int month) { 
    m_month = month; 
} // month 

// getDay() 
int DayOfYear::getDay() const { 
    return = m_day; 
} // getDay 

// getMonth() 
int DayOfYear::getMonth() const { 
    return = m_month; 
} 

// display() 
void DayOfYear::display() const { 
    std::cout << "Month: " << m_month << " - " 
       << "Day: " << m_day << std::endl; 
} // display 

现在你可以写出来的显示功能到任何文本格式,你喜欢或需要做,但这是一个有效的例子,将编译,构建和运行没有错误。

的main.cpp

#include "DayOfYear.h" 

int main() { 

    DayOfYear someDay; 
    someDay.display(); 

    return 0; 

} // main