这个摘取《Effective C++》中的例子来讲解:
// EX_EXAM.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include <stdarg.h>
using namespace std;
class TextBlock
{
public:
TextBlock(string text)
{
this->text=text;
}
const char &operator [] (std::size_t position) const
{
return text[position];
}
char &operator [] (size_t position)
{
return const_cast<char &>(static_cast<const TextBlock &>(*this)[position]);
}
private:
string text;
};
int main()
{
TextBlock tb("hell");
cout<<tb[0]<<endl;
return 0;
}