成员模板函数

2023-11-10

Member Function Templates

  • 11/04/2016
  • 2 minutes to read
  • Contributors
    • Mike B
    •  
    • Colin Robertson
    •  
    • Matthew Sebolt
    •  
    • Mike Jones
    •  
    • Gordon Hogenson
    •  
    • all

The term member template refers to both member function templates and nested class templates. Member function templates are template functions that are members of a class or class template.

Member functions can be function templates in several contexts. All functions of class templates are generic but are not referred to as member templates or member function templates. If these member functions take their own template arguments, they are considered to be member function templates.

Example

Member function templates of nontemplate or template classes are declared as function templates with their template parameters.

C++Copy

// member_function_templates.cpp
struct X
{
   template <class T> void mf(T* t) {}
};

int main()
{
   int i;
   X* x = new X();
   x->mf(&i);
}

Example

The following example shows a member function template of a template class.

C++Copy

// member_function_templates2.cpp
template<typename T>
class X
{
public:
   template<typename U>
   void mf(const U &u)
   {
   }
};

int main()
{
}

Example

C++Copy

// defining_member_templates_outside_class.cpp
template<typename T>
class X
{
public:
   template<typename U>
   void mf(const U &u);
};

template<typename T> template <typename U>
void X<T>::mf(const U &u)
{
}

int main()
{
}

Example

Local classes are not allowed to have member templates.

Member template functions cannot be virtual functions and cannot override virtual functions from a base class when they are declared with the same name as a base class virtual function.

The following example shows a templated user-defined conversion:

C++Copy

// templated_user_defined_conversions.cpp
template <class T>
struct S
{
   template <class U> operator S<U>()
   {
      return S<U>();
   }
};

int main()
{
   S<int> s1;
   S<long> s2 = s1;  // Convert s1 using UDC and copy constructs S<long>.
}

See also

Function Templates

Feedback

We'd love to hear your thoughts. Choose the type you'd like to provide:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

成员模板函数 的相关文章

随机推荐

  • 如何获取C++ Array的大小

    参考自chromium的处理方法如下 template
  • linux查看文件夹目录大小

    1 磁盘还剩多少空间 df h 2 当前的文件夹下的磁盘使用情况 du max depth 1 h 3 查看单个文件夹目录大小 du sh 文件或文件夹路径
  • 超级简单无任何第三方软件在安卓子系统中安装APK

    首先 你需要安装好安卓子系统 安装方法自行搜索 我是通过知乎网友的链接在微软商店直接下载的安卓子系统 无需先下载亚马逊商店 商店是后来自己装的 正事 打开子系统 高级设置 实验性功能 共享用户文件夹 开启 可以自定义文件夹 将需要的apk文
  • 用单链表优雅的写一个学生管理系统

    用单链表优雅的写一个学生管理系统 在基本的数据结构 单链表 Singly Linked List 中我们了解了如何用动态内存申请创建单链表 如何对单链表进行一些简单的操作 为进一步了解单链表以及其结构具有的功能 那么现在我们就用单链表来搞点
  • golang list to tree

    You can edit this code Click here and start typing package main import encoding json log 树 type Tree struct List map int
  • delete、truncate、drop的区别有哪些,该如何选择?不妨进来看看

    先看一个故事 上周同事小姐姐问我 哈哥你看 我发现MySQL有bug 我下午为了清理磁盘 明明删除了100万条MySQL数据 磁盘不仅没有变小 反而更满了呢 那你是怎么删除的 delete from table 呀 怪不得 其实要删除MyS
  • 路的始端,

    这是我的第一篇CSDN 目前准大二 大一恍恍惚惚就过去了如今还是个什么都不知道的小白 从现在开始要努力了 我要先把C语言基础打一下进而学Java 同时前端浅浅的学一下 希望有望成为全栈工程师 很多比赛 比如蓝桥杯什么的都不是很了解 而且什么
  • 全零网络IP地址0.0.0.0表示意义

    http liuzhigong blog 163 com blog static 17827237520114207278610 RFC 0 0 0 0 8 Addresses in this block refer to source h
  • 需求变更,敏捷项目应如何做?

    前两天我们在做项目复盘的时候 发现其实在整个过程中还是遇到了不少需求变更的问题 不过还好我们算是比较圆满地解决了这些突如其来的问题 相信也会有很多朋友和我们团队一样 经常遇到客户这边的需求变更 确实这是一个非常棘手的问题 不过在敏捷项目管理
  • MySQL高级用法:根据字段值拆分数据成多行

    需求描述 我这里需要根据c name中的字段值 根据逗号分割 转成多条数据 SELECT a id a c name substring index substring index a c name b help topic id 1 1
  • Linux下频繁读写文件,导致可用内存减少

    问题现象 Linux下从服务器下载文件时 通过回调函数一直写文件 频繁的进行write操作 导致系统可用内存一直减少 有时候可能会导致程序执行因为内存问题异常 测试代码如下 Copyright C 2019 All rights reser
  • 小程序分包配置

    在pages同级新建subPack文件夹 然后在pages中将分包配置进去 分包加载配置 此配置为小程序的分包加载机制 subPackages root subPack 子包的根目录 pages 这里的配置路径和pages里的一样 path
  • 【Linux下MySQL的初始化和配置】

    Linux下MYSQL的初始化和配置 一 初始准备 一 服务初始化 二 启动MYSQL 三 MYSQL登录 二 设置远程登录 一 确认网络 二 关闭防火墙 三 Linux下修改配置 一 初始准备 先去官网把需要的MYSQL版本下载并安装好
  • Spring Bean的生命周期(非常详细)

    Spring作为当前Java最流行 最强大的轻量级框架 受到了程序员的热烈欢迎 准确的了解Spring Bean的生命周期是非常必要的 我们通常使用ApplicationContext作为Spring容器 这里 我们讲的也是 Applica
  • (2021年)is not a supported wheel on this platform解决方案

    今天安装环境时碰到了这个问题 一脸懵逼 经过查阅得知是因为某个 whl文件和python的版本不兼容导致了这个问题 我看了很多人的回答 把别人的成果总结起来发现其实解决这个问题也很简单 但是这里不保证可以适用所有人的环境 造成这个问题的原因
  • java 数据库断连_Java + Tomcat,正在断开数据库连接?

    我有一个tomcat实例设置 但是context xml在一段时间不活动之后 我在其中配置的数据库连接不断消失 当我检查日志时 出现以下错误 com mysql jdbc exceptions jdbc4 CommunicationsExc
  • Java编写的美食网站 美食系统 功能齐全、界面漂亮 下载即可以运行

    8月份由于公司的事情太多 基本上没有更新博客信息 今天稍微空了点 继续为为大家介绍Java web项目 今天要介绍的是一个Java web编写的美食网站 美食系统 美食网站分两类用户 普通用户和系统管理员 普通用户具备的主要功能包括 登陆
  • git clone错误记录

    Unable to negotiate with XXXportXXX no matching host key type found Their offer ssh rsa 修改 ssh config Host PubkeyAccepte
  • 2022 华为杯数模研赛E题原创python代码

    每小问都会有对应的代码 并给出部分处理后的数据 可视化图等 已更新好前三问 注 目前市面上的资料都已经看过了 小p的那个Python代码 个人认为过分想要出的速度快 实际质量不太好 直接参考很难获奖 全程无脑机器学习 这种代码我可以写一筐
  • 成员模板函数

    Member Function Templates 11 04 2016 2 minutes to read Contributors all The term member template refers to both member f