gpt4 book ai didi

c++ - 未使用重载运算符 []

转载 作者:行者123 更新时间:2023-11-28 06:00:30 24 4
gpt4 key购买 nike

<分区>

给出一个最小的例子:

#ifndef ARR_H_
#define ARR_H_

#include <iostream>

class Array {
public:
Array();
int operator[](int idx);
private:
int arr[10];
};

int Array::operator[](int idx) {
std::cout << "ok";
return arr[idx];
}

#endif

然后我尝试创建一个对象

#include "test.h"
#include <iostream>

int main() {
std::cout << "Create" << std::endl;
Array obj();
int i = obj[0];

return 0;
}

为什么会报错

main.cpp: In function ‘int main()’:
main.cpp:7:18: warning: pointer to a function used in arithmetic [-Wpointer-arith]
int i = obj[0];
^
main.cpp:7:18: error: invalid conversion from ‘Array (*)()’ to ‘int’ [-fpermissive]

为什么它不使用我的operator[]

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