类模板与运算符重载(一个简单的例子)
类模板与运算符重载(一个简单的例子)
标签(空格分隔): 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
类模板与运算符重载(一个简单的例子)相关推荐
- 实现复数类中的运算符重载(含有double类型)
/* * 作 者: 霍雨佳 * 完成日期:2014 年4月15日 * 版 本 号:v1.0 * 问题描述:实现复数类中的运算符重载. * 样例输入: * 样例输出: * 问题分析:一个定义完整的类,是 ...
- 第7周-项目1-完整实现复数类中的运算符重载-扩展+、-、*、/运算符的功能
问题及代码: /* *Copyright (c)2015,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:number.cpp *作 者:单昕昕 *完成日期:20 ...
- c++第八周【任务1-3】实现复数类中的运算符重载
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: * 作 者: ...
- c++第八周【任务1-2】实现复数类中的运算符重载
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: c++第八周 ...
- c++第八周【任务1-1】实现复数类中的运算符重载
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: c++第八周 ...
- c++第八周【任务2】实现Time类中的运算符重载
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: 任务2]实现 ...
- 第十三周项目一-分数类中的运算符重载
/**Copyright(c)2016,烟台大学计算机与控制工程学院*All rights reserved*文件名称:123.cpp*作 者:王蕊*完成日期:2016年5月25日*版 本 号:v1. ...
- 第十二周项目二-Time类中的运算符重载
/**Copyright(c)2016,烟台大学计算机与控制工程学院*All rights reserved*文件名称:123.cpp*作 者:王蕊*完成日期:2016年5月24日*版 本 号:v1. ...
- 项目3-分数类中的运算符重载
/* * Copyright (c) 2011, 烟台大学计算机学院 * All rights reserved. * 作 者:王静 * 完成日期:2013 年 5 月 5 日 * 版 本 号:v1. ...
最新文章
- 今晚直播 | 深入浅出理解A3C强化学习
- volatile怎么实现的内存可见?附面试题答案
- Labview 串口通信之——PC控制云台方向
- 【机器学习】特征工程
- [HAOI2007] 理想的正方形 (单调队列)
- IOS静态库生成及测试
- linux 编译查看链接库详情,Linux环境下的编译,链接与库的使用
- 4,GIL全局解释器锁,event事件,信号量
- select语句一些要点(一)
- 程序员面试——C++工程师面试大全第一部分
- HALCON:Variation Model用法解析
- 【MCM-2017】2017年数模美赛D题 - 特奖论文学习
- 虚拟机SSH免密登录配置
- candidate expects 1 argument, 0 provided 错误解决
- 领英LinkedIn的个人商务会员和企业销售会员我们应该怎么选?
- buildroot+qt+qcamrea+opencv打开摄像头进行拍照录像保存功能
- linux指令速查手册 中文高清pdf版,linux指令速查手册
- 超实用BRVAH开源框架使用之添加头部尾部问题
- C语言 实现离散数学合式公式真值表
- 学校规定:一个学生可选修多门课,一门课有若干学生选修;一个教师可讲授多门课,一门课只有一个教师讲授;一个学生选修一门课,仅有个成绩。学生的属性有学号、学生姓名;教师的属性有教师编号,教师姓名
热门文章
- random_normal_initializer 使用
- 计算机文化基础 电大,电大计算机文化基础形考一答案
- Mybatis开发CRUD
- 大一高数下册笔记整理_初中化学期中重难点解读,复习不用愁啦,建议抄笔记...
- 关于计算机英语手抄报全国一等奖,英语手抄报:Walking to School
- linux GCC、GDB、Makefile
- 软核,硬核、固核的区别!
- 【Android-NCNN-Vulkan】ncnn-vulkan load param model 速度慢
- IP3 三阶交调截取点测试(转帖)
- Java线程池使用说明