这会被视为配件吗? (C ++)

时间:2014-12-11 02:39:30

标签: c++ accessor mutators

很抱歉可怕的格式化但我只是想知道以下是否会被视为访问者。

所以我的班级定义看起来像这样......

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";
  }
}

2 个答案:

答案 0 :(得分: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会失去灵活性,使用{{ 1}}梯子使代码变得丑陋和笨拙。

答案 1 :(得分:1)

一些术语

  • mutator更改了类中的数据。
  • 访问者检索它。

由此不,不是真的。 Accessor源于访问