【问题标题】:Operator[] shows me error 'unary *' [closed]运算符 [] 向我显示错误“一元 *”[关闭]
【发布时间】:2013-06-17 21:08:35
【问题描述】:

我正在用 C++ 创建我自己的 String 类。 我在这一点上堆叠:

class String{
    char* arr;
    int len;

    String& operator[](int);
}

String& String::operator[](int n) {
len = 1;
arr = new char[1];
arr = *arr[n];
}

编译器告诉我这个:

在成员函数'String& String::operator'中:错误:无效 ‘unary *’的类型参数

错误在哪里? 感谢帮助! :)

【问题讨论】:

  • 在成员函数'String& String::operator[](int)'中:错误:一元'*'的无效类型参数(有'char')coliru.stacked-crooked.com/…
  • 你有一本关于 C++ 的书,你可以从基础开始学习这些东西吗?这真的没有意义:(
  • 您希望arr = *arr[n]; 做什么?
  • 你到底想operator[]做什么?此运算符应返回对 char 的引用,不是吗?
  • 你不能只是在编译器中抛出与代码模糊相似的随机文本并期望它做一些有用的事情。

标签: c++ operators syntax-error


【解决方案1】:

我猜应该是这样的,再问一下还是不能编译。

class String{
    char* arr;
    int len;

    char operator[](int);
};

char String::operator[](int n) {
    //if (n >= len) throw;
    //if (arr = NULL) throw;
    return arr[n];
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-31
    • 1970-01-01
    • 2015-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-21
    • 1970-01-01
    相关资源
    最近更新 更多