Строковые переменные plant1[3]
, plant2[3]
& plant3[3]
видны только low()
, medium()
, high()
, но не друг для друга. Например, вы пытаетесь получить доступ к локально объявленной переменной функции foo()
в функции bar()
, что невозможно.
Во-вторых, вы пытаетесь получить доступ к члену данных plant1[3]
в pick()
, но компилятор не знает, где вы фактически определили имя этих трех заводов вне этой функции, просто он знает plant1
переменную без массивов, которая объявлена в закрытом разделе класса. Следовательно, высока вероятность того, что ваш код потерпит неудачу.
Скорее вы можете просто объявить то же самое таким образом:
class inside {
std::string plants1[3] = {"...", ...}; // these variables are
std::string plants2[3] = {"...", ...}; // only visible inside the
std::string plants3[3] = {"...", ...}; // class member functions
.
.
}
И после этого вы получите выполнение строки успешно.