2014-12-11 33 views
0

對不起,可怕的格式,但我只是想知道如果以下將被視爲Accessor。這會被視爲Accessor嗎? (C++)

所以我的類定義看起來是這樣的......

class work { 
     public: 
      void getInput(); //Mutator 
      void output(); //Accessor? 
    //... 

因此,這裏的功能..

void work::output() 
{ 
    dayofweek = day + getMonthvalue(month, year) + ....; 
    final = dayofweek % 7; 

    if(final == 0) 
    cout << "The day of the date is Sunday\n"; 

    else if(final == 1) 
    cout << "The day of the date is Monday\n"; 

    else if(final == 2) 
    cout << "The day of the date is Tuesday\n"; 

    /*. 
    . 
    .*/ 

    else { 
    cout << "The day of the day is Saturday\n"; 
    } 
} 
+3

通常,*存取器*返回正在*存取*的數據。 – 2014-12-11 02:40:55

+1

通常,* mutator *會更改數據成員的值。 – 5gon12eder 2014-12-11 02:43:29

+3

我會同時打電話給他們兩個 – 2014-12-11 02:45:30

回答

1

一些術語

  • 增變更改數據在課堂上。
  • 訪問者檢索它。

由此否,不是真的。 訪問器來自訪問

2

你已經證明什麼爲output會更經常被寫爲inserter

class work { 
    // ... 

    friend std::ostream &operator<<(std::ostream &os, work const &w) { 
     static char const *names[] = { 
      "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" 
     }; 

     return os << names[getDayOfWeek(w)]; 
    } 
}; 

只要是明確的:一個inserter得到它的名字來自它插入某些類型的項目成事實流。鏡像(從流中獲取某種類型的項目)是extractor

如果你真的堅持了正確的名稱,代碼完全按照目前的情況是正確的,我自己的立場是,這是一個mistake(強制輸出到cout失去彈性,使用if梯使代碼醜陋而笨拙) 。