类模板与运算符重载(一个简单的例子)

标签(空格分隔): C++ 算法竞赛


下面是一段简单的代码,表示我们建立了一个类模板Vector,可以看做是对STL中vector的简单实现。
为了让这个Vector支持通过下标访问,所以我们需要对[]这个运算符进行重载。
由于是类模板,所以在类模板内部,遵循这样的格式:

        T& operator ** (int i);

在函数体部分,遵循这样的格式:

        template <typename T>T& classname<T>::operator ** (paraments)    {...}

其中的classname是我们定义的类模板的名称,paraments是这个运算符需要的参数定义。
下面一段程序就是实例。

#include <iostream>
#include <algorithm>
using namespace std;
template <typename T> class Vector {protected:int _size,_capacity;int* _elem;public:T& operator[](int i);
};
template <typename T> T& Vector<T>::operator[](int i)   {return _elem[i];}
int main()  {int a=1,b=2;const int *p1=&a;int *p2=&b;p1=p2;return 0;
}

转载于:https://www.cnblogs.com/yichuan-sun/p/9624164.html

类模板与运算符重载(一个简单的例子)相关推荐

  1. 实现复数类中的运算符重载(含有double类型)

    /* * 作 者: 霍雨佳 * 完成日期:2014 年4月15日 * 版 本 号:v1.0 * 问题描述:实现复数类中的运算符重载. * 样例输入: * 样例输出: * 问题分析:一个定义完整的类,是 ...

  2. 第7周-项目1-完整实现复数类中的运算符重载-扩展+、-、*、/运算符的功能

    问题及代码: /* *Copyright (c)2015,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:number.cpp *作 者:单昕昕 *完成日期:20 ...

  3. c++第八周【任务1-3】实现复数类中的运算符重载

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: * 作 者: ...

  4. c++第八周【任务1-2】实现复数类中的运算符重载

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: c++第八周 ...

  5. c++第八周【任务1-1】实现复数类中的运算符重载

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: c++第八周 ...

  6. c++第八周【任务2】实现Time类中的运算符重载

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: 任务2]实现 ...

  7. 第十三周项目一-分数类中的运算符重载

    /**Copyright(c)2016,烟台大学计算机与控制工程学院*All rights reserved*文件名称:123.cpp*作 者:王蕊*完成日期:2016年5月25日*版 本 号:v1. ...

  8. 第十二周项目二-Time类中的运算符重载

    /**Copyright(c)2016,烟台大学计算机与控制工程学院*All rights reserved*文件名称:123.cpp*作 者:王蕊*完成日期:2016年5月24日*版 本 号:v1. ...

  9. 项目3-分数类中的运算符重载

    /* * Copyright (c) 2011, 烟台大学计算机学院 * All rights reserved. * 作 者:王静 * 完成日期:2013 年 5 月 5 日 * 版 本 号:v1. ...

最新文章

  1. 今晚直播 | 深入浅出理解A3C强化学习
  2. volatile怎么实现的内存可见?附面试题答案
  3. Labview 串口通信之——PC控制云台方向
  4. 【机器学习】特征工程
  5. [HAOI2007] 理想的正方形 (单调队列)
  6. IOS静态库生成及测试
  7. linux 编译查看链接库详情,Linux环境下的编译,链接与库的使用
  8. 4,GIL全局解释器锁,event事件,信号量
  9. select语句一些要点(一)
  10. 程序员面试——C++工程师面试大全第一部分
  11. HALCON:Variation Model用法解析
  12. 【MCM-2017】2017年数模美赛D题 - 特奖论文学习
  13. 虚拟机SSH免密登录配置
  14. candidate expects 1 argument, 0 provided 错误解决
  15. 领英LinkedIn的个人商务会员和企业销售会员我们应该怎么选?
  16. buildroot+qt+qcamrea+opencv打开摄像头进行拍照录像保存功能
  17. linux指令速查手册 中文高清pdf版,linux指令速查手册
  18. 超实用BRVAH开源框架使用之添加头部尾部问题
  19. C语言 实现离散数学合式公式真值表
  20. 学校规定:一个学生可选修多门课,一门课有若干学生选修;一个教师可讲授多门课,一门课只有一个教师讲授;一个学生选修一门课,仅有个成绩。学生的属性有学号、学生姓名;教师的属性有教师编号,教师姓名

热门文章

  1. random_normal_initializer 使用
  2. 计算机文化基础 电大,电大计算机文化基础形考一答案
  3. Mybatis开发CRUD
  4. 大一高数下册笔记整理_初中化学期中重难点解读,复习不用愁啦,建议抄笔记...
  5. 关于计算机英语手抄报全国一等奖,英语手抄报:Walking to School
  6. linux GCC、GDB、Makefile
  7. 软核,硬核、固核的区别!
  8. 【Android-NCNN-Vulkan】ncnn-vulkan load param model 速度慢
  9. IP3 三阶交调截取点测试(转帖)
  10. Java线程池使用说明