重载操作符[]

简介:

代码

复制代码
#include <iostream>
using namespace std;

template<int Size>
class Index
{
    public:
        int operator[](char vchar) 
        { return vchar % Size; }
};

int main()
{
    Index<26> index;
    cout << index['a'] << endl;
}
复制代码

结果

19

注意

模版分类型模版(函数模版、类模版)和非类型模版,这里是非类型模版,在使用时注意在<>声明此参数





本文转自jihite博客园博客,原文链接:http://www.cnblogs.com/kaituorensheng/p/3601416.html,如需转载请自行联系原作者

相关文章
|
存储 C语言
【C语言】 条件操作符 -- 逗号表达式 -- []下标访问操作符,()函数调用操作符 -- 常见关键字 -- 指针 -- 结构体
【C语言】 条件操作符 -- 逗号表达式 -- []下标访问操作符,()函数调用操作符 -- 常见关键字 -- 指针 -- 结构体
|
10月前
|
算法 程序员 C++
【C++运算符重载】探究C++中的下标运算符[]重载
【C++运算符重载】探究C++中的下标运算符[]重载
95 0
|
10月前
|
Serverless C语言
【C语言】va_list(可变参数处理)
【C语言】va_list(可变参数处理)
185 0
|
10月前
通过c字符串对拷贝构造和赋值构造进行了解
通过c字符串对拷贝构造和赋值构造进行了解
65 0
Date类实现运算符和赋值重载
Date类实现运算符和赋值重载
|
编译器 C++
C++11之常量表达式(const与constexpr的区别)
C++11之常量表达式(const与constexpr的区别)
202 0
|
编译器 C++
C++ 重载操作符 <<实现模拟输出语句: cout << endl;
C++ 重载操作符 <<实现模拟输出语句: cout << endl;
225 0
|
Web App开发 编译器 C++
C++ 几行代码就能重载操作符模拟 cout<<123<<endl;
C++ 几行代码就能重载操作符模拟 cout<<123<<endl;
97 0
|
编译器 C语言 开发者
【C 语言】数据类型本质 ( void 关键字作用 | 数据类型封装 | 作为 参数 或 返回值 代表无 | void* 指针赋值与被赋值 | void 类型变量不存在 )
【C 语言】数据类型本质 ( void 关键字作用 | 数据类型封装 | 作为 参数 或 返回值 代表无 | void* 指针赋值与被赋值 | void 类型变量不存在 )
305 0
|
Java 编译器
编译器说 Lambda 表达式中的变量必须是 final 的,我偏不信
编译器说 Lambda 表达式中的变量必须是 final 的,我偏不信
321 0