假设我们有一个班级:
class A {
private:
int index;
public:
// related overloaded functions and other stuffs
};
现在说我们将它用作期望int。
的数组中的索引A in;
Z z = arr[in]; // arr is of some type Z.
我想询问'在'用于' in',调用什么函数(比如复制构造函数或重载赋值运算符)或者对象直接在这里进行类型转换。
如果班级是这样的话会有什么不同
class A {
private:
int index1;
int index2;
public:
// related overloaded functions and other stuffs
};
答案 0 :(得分:2)
您的A
课程可能已定义operator int
或operator size_t
。该运算符用于将该类的实例转换为整数类型,此时将进行常规数组访问。例如:
class A {
public:
operator int() const;
};
class IN {
public:
};
int main()
{
A a;
IN in[4];
in[a];
}