2016-02-19 153 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