gpt4 book ai didi

c++ - 将类实例作为指针传递并在此指针上使用重载的下标运算符

转载 作者:太空宇宙 更新时间:2023-11-04 15:48:16 28 4
gpt4 key购买 nike

我有一个包含整数数组的类,为了获取该数组的引用,下标运算符 [] 被重载(这是一个删除了逻辑检查等的精简示例):

class Foo {
public:

Foo() {};

// and overload the [] operator
int& operator[](const int index);

private:
const int LEN = 7;
int arr[LEN];
};

int& Foo::operator[](const int index) {
return arr[index];
}

此类(名为 boo)的实例的指针被传递给函数。现在我要做的是:

int val = boo[0];

但它失败了“错误:从‘Foo’类型到‘int’类型的无效转换”。

我的第一个想法是我将一个指针传递给一个类,我应该将实例的拷贝放入范围并使用该拷贝。这行得通。但是我很好奇是否可以将用户定义的类型用作真正的内置类型?我应该使用包装器吗?

最佳答案

您需要使用:

boo->operator[] ( 0 );

(*boo)[0];

即取消引用指向对象 boo 的指针。

关于c++ - 将类实例作为指针传递并在此指针上使用重载的下标运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13121319/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com