是否可以将类用作自己方法的返回类型

Posted

技术标签:

【中文标题】是否可以将类用作自己方法的返回类型【英文标题】: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); 【参考方案1】:

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

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

【讨论】:

如果它解决了您的问题,您应该接受答案@user3443063

以上是关于是否可以将类用作自己方法的返回类型的主要内容,如果未能解决你的问题,请参考以下文章

java - 通用返回类型? [复制]

ATL/COM : 在 IDL 文件中我们可以创建一个可以用作返回类型的类

不能将类引用用作非类型模板参数

是否可以使用方法返回使用#define 创建的变量?

怎么将一个函数的返回值用作另外一个函数的参数

是否可以标记特定方法模式以返回特定类型?