C ++ забыть объявить тип переменной вызывает ошибку - PullRequest
0 голосов
/ 04 сентября 2018

Я запутался, почему следующий код не может скомпилироваться из-за следующей ошибки: 'rootLevel' was not declared in this scope.

В моем понимании, struct NodeLevel объявлен и определен до class Solution, не является ли это достаточным условием для того, чтобы этот класс был доступен для класса Solution?

Спасибо!

struct NodeLevel{
    int level;
    BinaryTreeNode * node;
    NodeLevel(int val, BinaryTreeNode * x) : level(val), node(x) {}  
};

class Solution {
public:
    vector<vector<int>> levelOrder(BinaryTreeNode* root) {
        queue<NodeLevel> q;
        rootLevel = NodeLevel(0, root);
        q.push(rootLevel);

        /*
        do some stuff with the queue 
        */
    }
};

1 Ответ

0 голосов
/ 04 сентября 2018

Компилятор правильный, вы не объявили переменную rootLevel.

...