【问题标题】:is it possible to use a class as a return type of a the own method是否可以将类用作自己方法的返回类型
【发布时间】:2015-07-19 04:51:43
【问题描述】:

是否可以像这样使用类作为类方法(ErgbnisAusFortran)的返回类型:

class ErgbnisAusFortran
{
public:
   ErgbnisAusFortran();
private:
   int Var_a;
   int Var_b ;  
public: 
   int getVar_a() const { return Var_a; }
   int getVar_res() const { return Var_res; }

   void setVar_res(int input)      {Var_res = input;}
   void setVar_a(int input)        {Var_a = input;}

   ErgbnisAusFortran calculateResults(EingabeWerte Ein);    
};

【问题讨论】:

  • 是的。你试过这个吗?你遇到了什么问题?
  • 这绝对是可能的,我相信你已经在你的代码中使用了这样的函数(也许没有注意到)。例如,+ 运算符通常返回同一类的新对象。
  • 是的,当然你可以使用一个类作为返回类型。也许你可以对你的函数做一点改变,你可以这样写:ErgbnisAusFortran calculateResults(const EingabeWerte& Ein);

标签: c++ class types return


【解决方案1】:

当然,这是可能的。这也很常见——例如,Factory Method 模式可以在单个类中实现,在这种情况下,成员函数将返回它们所属的类的实例。完成此操作的另一种常见情况是不可变类生成自身的修改版本。

尽管您可以在几乎所有情况下都这样做,但在某些情况下,您可能不应该这样做,选择创建一个单独的类,其中的函数返回你的班。主要标准是从逻辑的角度来看是否有意义。

【讨论】:

  • 如果它解决了您的问题,您应该接受答案@user3443063
猜你喜欢
  • 2018-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-29
相关资源
最近更新 更多