C++ C++;按类访问基元数组

C++ C++;按类访问基元数组,c++,class,indexing,C++,Class,Indexing,我想使用类访问基元类型数组。 我使用Visual C++ 2013 < /P> class CInt { public: CInt() { val_ = 0; } CInt(int x) { val_ = x; } private: int val_; }; int arr[2]; CInt index; arr[index] = 2; // ERROR! 我试图重载size_t()运算符,但仍然不起作用。 在C++/C++11中可能出现类似的情况吗?我怀疑您有错

我想使用类访问基元类型数组。 我使用Visual C++ 2013 < /P>
class CInt
{
public:
    CInt() { val_ = 0; }
    CInt(int x) { val_ = x; }

private:
    int val_;
};

int arr[2];
CInt index;

arr[index] = 2; // ERROR!
我试图重载size_t()运算符,但仍然不起作用。
在C++/C++11中可能出现类似的情况吗?

我怀疑您有错误,不是因为您的类,而是因为您正在执行数组赋值。您必须在函数中执行数组赋值:(假设正确重载了转换运算符,这应该可以工作)


arr[index]=2;//错误 如何重载size\u t()运算符?以下是我的作品:

#include <iostream>

class CInt
{
public:
    CInt() { val_ = 0; }
    CInt(int x) { val_ = x; }

    operator size_t() const { return val_; }

private:
    int val_;
};

int main() {
    int arr[2];
    CInt index;

    arr[index] = 2;

    // output: 2
    std::cout << arr[index] << std::endl;
}
#包括
类辛特
{
公众:
CInt(){val_u=0;}
CInt(intx){val_ux=x;}
运算符大小\u t()常量{return val\u;}
私人:
int val_;
};
int main(){
int-arr[2];
辛特指数;
arr[指数]=2;
//产出:2

std::你想用你的类对象作为索引吗?为什么?CInt
类背后的目的是什么?它应该解决什么问题?至于你的问题,你是如何实现
int
size\t
操作符的?你能试着创建一个来向我们展示吗?同样,当把MCVE添加到你的问题中时,我会告诉你包括您可能遇到的错误。可能的重复:。由于您没有提供答案,因此无法真正判断错误。我们应该猜测错误吗?以及“不起作用”的含义是什么?来吧,那就纠正我的错误吧!对于不完整的问题/错误报告,也很抱歉。
#include <iostream>

class CInt
{
public:
    CInt() { val_ = 0; }
    CInt(int x) { val_ = x; }

    operator size_t() const { return val_; }

private:
    int val_;
};

int main() {
    int arr[2];
    CInt index;

    arr[index] = 2;

    // output: 2
    std::cout << arr[index] << std::endl;
}