【问题标题】:An element of a pointer vector of object pointers assignment对象指针赋值的指针向量的一个元素
【发布时间】:2013-01-20 23:36:34
【问题描述】:

我在将对象指针的指针向量的元素分配给对象指针时遇到问题。我在 Linux 上并使用 Eclipse IDE。如果你想看看我的问题:

void Parse::parseDatalogProgram(vector<Token*>* tokens)
{
    Token* currentToken = tokens[0];
...
}

我收到一个语法错误,提示“无法在初始化中将‘std::vector’转换为‘Token*’”,尽管上面看起来不是这样我该如何正确解决这个问题?

【问题讨论】:

    标签: c++ object pointers vector variable-assignment


    【解决方案1】:

    tokens指向向量的指针,而不是对象或引用。 C++ 方式将函数原型更改为:

    void Parse::parseDatalogProgram(const vector<Token*>& tokens){...}
    

    如果这不可能,您可以在使用它之前简单地取消引用指针:Token* currentToken = (*tokens)[0]

    【讨论】:

      【解决方案2】:
      Token* currentToken = (*tokens)[0];
      

      确保令牌不为空。你为什么不传递参考呢?

      【讨论】:

        【解决方案3】:

        tokens 是一个指针,而不是 vector 本身。你可以这样做

        tokens->operator[](0);
        

        (*tokens)[0];
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-07-06
          • 2011-03-12
          • 1970-01-01
          • 1970-01-01
          • 2011-05-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多