具有相同名称的两个功能

莫泽雷斯

是否可以使用名称不同的两个功能,但相同的功能共享功能主体?我们该怎么做呢?

template<typename _T>
class array {
public:
    _T operator+(_T concatinate_operand); // concatinate to the array
    _T append(_T concatinate_operand);
};
内森·奥利弗

是的,这很容易实现。您只需从另一个调用函数即可执行实际的实现。看起来像

template<typename _T>
class array {
public:
    _T operator+(_T concatinate_operand) { return append(concatinate_operand); } // concatinate to the array
    _T append(_T concatinate_operand) { /*actual logic here*/ }
};

请注意,如果T太大,则按值传递它并获得副本会损害性能。如果您使用类似的引用

template<typename _T>
class array {
public:
    _T& operator+(const _T& concatinate_operand) { return append(concatinate_operand); } // concatinate to the array
    _T& append(const _T& concatinate_operand) { /*actual logic here*/ }
};

您将避免不必要的副本。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

两个具有相同名称功能的Mixins Vuejs

具有相同名称的两个输入

在两个不同的程序包中获得两个具有相同名称的功能的帮助

如何在1个变量下打开两个具有相同名称的文件以实现差异功能?

是否可以创建具有两个具有相同名称的属性的类型?

更改Java中的导入名称,或导入两个具有相同名称的类

是否可以有两个具有相同名称的属性?

是否可以有两个具有相同名称的ConnectionString?

如何为具有相同名称(不同名称空间)的两个类处理MVC DisplayTemplates

c可以声明两个具有相同名称,返回类型但参数不同的函数

推断显示两个具有相同名称的不同变量?

Scala:反射API调用具有相同名称的两个方法之一

如何删除具有相同名称的两个用户之一?

方法的两个具有相同名称的隐式定义

想要自动挂载两个具有相同名称的FAT闪存驱动器

关于导入两个具有相同名称的类的问题-android.graphics.Color

在Python中导入两个或更多个具有相同名称的模块

SqlLocalDB信息列出了两个具有相同名称的实例

两个具有相同名称的SQL Server实例?

解析具有相同名称的两个元素android

解析两个具有相同名称的元素-Pull Parser

如何比较两个具有相同名称的预处理器宏?

使用查找从两个目录中删除具有相同名称的文件

如何使用两个具有相同名称的关注点?

IllegalAnnotationsException:类具有两个相同名称的属性

两个具有相同名称的HTTP GET参数时的行为

Windows CLI:显示两个具有相同名称的进程之一

VS 链接器生成两个具有相同名称的部分

导入两个具有相同名称的类。怎么处理?