我想使用类访问基本类型数组。 我正在使用Visual C ++ 2013
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中是否可以这样?
答案 0 :(得分:1)
我怀疑你有错误,不是因为你的班级,而是因为你在做数组作业。您必须在函数中执行数组赋值:(这应该有效,假设您正确地重载了转换运算符)
arr[index] = 2; // ERROR! <-- you can't do this outside a function
int main() {
arr[index] = 2; // <-- must be within a function
答案 1 :(得分:1)
你是如何重载size_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;
}