class C {
public: void c_set(int x){ a = x; }
private: int a;
}
;
class U {
public: void load();
c_loader(int i, int x){ c[i].c_set(x); };
private: vector<C> c(20);
}
;
void U::load() {
int x;
cin >> x >> i;
c_loader(i, x)
}
Я действительно смущен этим. Мне нужно вызвать функцию-член в другой, но моя проблема в том, что внутренний класс является вектором этих классов. Мой код должен работать, но результатом является segfault. Предположим, что функция cget
имеет определение.C++, вызывающий вектор класса методов в другом классе
Последняя строка, предположительно, является x. – James
Нагрузка должна быть методом U? –
'load()' может быть объявлен inline (т.е. внутри класса), например 'public: void load() {...}', или вам нужно добавить имя класса к имени функции, например 'void U :: load () {...} '. 'x' не инициализируется. И, наконец, 'c' пуст (что приводит к segfault при попытке доступа к его членам). – TobiMcNamobi