【问题标题】:Is it possible to overload auto ? (c++)是否可以超载 auto ? (c++)
【发布时间】:2016-01-26 02:49:59
【问题描述】:

我只是想知道,是否可以重载一个自动类型,使用几个后期指定的返回类型? 我想要做的是在我的构造函数类中使用动态类型参数来 调用能够使用动态构造函数返回动态类型的通用函数 returnValue()。我只有一些想法,比如使用虚拟继承或模板,但我不确定,所以我要求获得任何建议,谢谢(在 c++ 中获得动态类型似乎比 c# 更难)

#pragma once

class AutoType
{
public:
    AutoType();
    ~AutoType();
    auto returnValue()->float(*)[1];
    //auto returnValue()->int(*)[1];
    //static const auto staticAuto;

    /*
    int returnValue(){
        return 1;
    }
    float returnValue(){
        return 2;
    }
    long returnValue(){
        return 123;
    }*/

};

【问题讨论】:

  • 我错过了什么吗?我没有看到任何负面反馈,只是人们对您的问题感到困惑
  • 链接标题是“编译器错误 C3551” - 我很困惑你认为它可以编译
  • 我无法编译您的代码。您发布的链接标题为“编译错误”,我只是感到困惑
  • @EdHeal:auto returnValue()->float(*)[1]; 是一个函数,根据 MSDN 链接,它返回指向单元素 C 样式浮点数组的指针。它肯定会编译,它的返回类型可以分配给float (*a)[1];
  • 我假设“负面反馈”是指分数-1?如果您可以提出更高质量的问题,那么反对您的问题的人就会减少,而反对您的问题的人就会更多。这主要与问题的理解程度有关,而不是问题的技术内容。

标签: c++ dynamic types overloading auto


【解决方案1】:

是否可以重载一个自动类型,使用几个后期指定的返回类型?

没有。您不能仅根据其返回类型重载函数/方法。只有它的参数可以用于重载决议。您所要求的必须使用模板来解决,或者通过返回像 boost::any 这样的运行时变体类型来解决。

【讨论】:

  • @sachaamm 什么..?这个答案内容丰富,如果有的话,肯定
猜你喜欢
  • 1970-01-01
  • 2010-09-12
  • 1970-01-01
  • 2021-10-22
  • 2022-01-05
  • 2020-03-14
  • 2012-09-04
  • 1970-01-01
相关资源
最近更新 更多