[英]Friend classes and overloaded operators
首先,這是出於學術目的。 我感到非常沮喪,甚至與朋友一起工作了半天。
我們正在與重載的運算符和朋友類一起工作,這個實驗使我感覺像個白痴。 我將在下面發布重要的代碼,但整個項目將在文章底部的zip文件中。 我確定它充滿了錯誤,並且現在拒絕保存我的一些代碼(它一直拋出異常)。
這是我小學班級的頭文件代碼
class NumDays
{
private:
int hours;
double days;
void calcDays(int);
public:
NumDays (int);
void setHours (int);
double getWork();
NumDays operator+ (const NumDays &);
NumDays operator- (const NumDays &);
NumDays operator++ ();
void operator<< (const NumDays &);
friend class Overtime(const NumDays &);
};
似乎不喜歡我嘗試將NumDays對象傳遞給Overtime類構造函數的嘗試,但是據我了解,這是應該如何工作的,因為超時對象是由每個NumDays對象構造的
第二個問題是重載的運算符,解決這個問題的麻煩較少,而必須如此具體實施的麻煩則更多。
這是重載運算符的代碼
/*overloading the + operator***************************************************/
NumDays NumDays::operator+ (const NumDays &right)
{
NumDays temp;
temp.hours = hours + right.hours;
return temp;
}
/*overloading the -operator***************************************************/
NumDays NumDays::operator- (const NumDays &right)
{
NumDays temp;
temp.hours = hours - right.hours;
return temp;
}
/*overloading the ++ operator**************************************************/
NumDays NumDays::operator++ ()
{
++hours;
return *this;
}
/*overloading the << operator**************************************************/
void NumDays::operator<< (const NumDays &objOput)
{
cout << objOput.getWork << " days have been worked by this work";
}
絕對不是<<重載的支持者,但我基本上是直接從我的書中復制代碼來嘗試執行此操作。
原始代碼鏈接已斷開,這里是指向它的永久鏈接。 http://www.mediafire.com/file/j4q3fln9a8p98ll/dayCounter.zip
也有些固定我的代碼。 並不完美,但它並編譯和主要工作。 http://www.mediafire.com/file/g5m21drbuab8tso/Lab5workCounter.zip
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.