面向对象另外一个核心概念是多态性。所谓多态,是指一个名字(或符号)具有多种含义。这对仿真客观世界以及提升软件的灵活性有相当重要的意义。 在面向对象的程序设计语言中,多态是通过重载(overload)来实现的。 C语言中,有许多系统预定义的运算符例如“+”,它可以用于整数类型数据,也可用于实数类型数据,虽然使用相同的运算符,但生成的目标代码不相同。这时,“+”运算符具有两种不同的解释(实现代码)。也就是说,像“+”这样的运算符在C语言中已经被重载。不幸的是,C语言仅支持少量有限的运算符重载。 C
今天看到有人问,在2维或者多维数组的情况下怎样重载像[][]这样的操作符号。其实思路也不难啊,只不过是重载2个[]符号而已,并且2个[]的功能各不一样。第一个[]应该定位行.最后一个[]应该返回最终数据的引用。贴一下实现基本功能的代码吧,像越界检测,及其他功能就没写了,只要体现了思路,其他的功能好加。 代码如下:#include #include
using namespace std;
template class arr;template class arrBody{ priv