是否可以重载阴影虚拟函数?

问题描述

我想隐藏基类的虚函数,并引入一个具有相同名称和相同签名的新虚函数,但返回类型除外。

类似于:

using Microsoft.AspNetCore.NodeServices;
using Microsoft.AspNetCore.Mvc;
using System.Threading.Tasks;

namespace ConvertHighchart.Controllers
{
[ApiController]
[Route("[controller]")]
public class runNodeScriptController : ControllerBase
{
    private readonly INodeServices _nodeServices;
    public runNodeScriptController(INodeServices nodeServices)
    {
        _nodeServices = nodeServices;
    }

    [HttpPost]
    public async Task<IActionResult> Post()
    {
        var result = "";
        try
        {
            result = await _nodeServices.InvokeExportAsync<string>("test_nodejs_script","generateHighChart","abc");
        }
        catch (System.Exception ex)
        {
        }

        return Ok(result);
    }
  }
}

我希望它的行为方式如下:

struct A {
  virtual int f() = 0;              // Newly introduced method: A::f.
};
struct B: public A {
  int f() final { return 1; }       // Overriding A::f.
};
struct C: public B {
  virtual double f() = 0;           // Newly introduced method C::f. It shadows A::f
};
struct D: public C {
  double f() final { return 2.0; }  // Overriding C::f.
};

有可能实现吗?

任何版本的 C++ 标准都可以。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)