class A {
private:
int numberOfElements;
public:
A() : numberOfElements(0) {}
void add() { numberOfElements++; }
Значение numberOfElements остается 0.Изменение значения частной примитивной переменной в C++
void PhoneBook::add(std::string name, std::string phoneNumber) {
entries[numberOfElements] = Entry(name, phoneNumber);
numberOfElements++;
}
То есть фактический код, который должен увеличивать переменную в моем приложении. Класс A - это всего лишь образец того, как выглядит мой оригинальный класс.
std::string PhoneBook::find(std::string name) {
for(int i = 0; i < numberOfElements; ++i) {
std::cout << i << std::endl;
if(entries[i].getName().compare(name) == 0) {
return entries[i].getPhoneNumber();
}
return "Name not found";
}
}
я распечатал значение I, чтобы увидеть, что это было и остается на уровне 0.
void PhoneBook::add(std::string name, std::string phoneNumber) {
entries[numberOfElements] = Entry(name, phoneNumber);
numberOfElements++;
}
std::ifstream in;
in.open("phonebook.txt");
while(in >> name && in >> phoneNumber) {
book.add(name, phoneNumber);
}
Можете ли вы также показать нам код, который проверяет ваше требование, возможно, это ошибка? – nos
Не было без [mcve] – NathanOliver
@ nos - это мое редактирование, о чем вы просили? Это все места, в которые входит переменная numberOfElements. –