С++ Недопустимое использование функции-члена (вы забыли '()'?)

У меня проблемы с компиляцией моей программы. Ошибка происходит в строке 165-177. Все что я добавил это тест на наличие букв и у меня вылезла ошибка, надеюсь вы поможете! Полный код http://pastebin.com/embed.php?i=WHrSasYk

(Прикрепленный ниже код)

do
{
  cout << "\nCustomer Details:";

  cout << "\n\tCustomer Name:";
  cout << "\n\t\tFirst Name:";
  getline (cin, Cust_FName, '\n');
  if (Quotation::Cust_FName.length() <= 1)
    ValidCustDetails = false;
  else
  {
    // Error line 165!
    for (unsigned short i = 0; i <= Cust_FName.length; i++)
      if (!isalpha(Quotation::Cust_FName.at(i)))
        ValidCustDetails = false;
  }
  cin.ignore();
  cout << "\t\tLast Name:";
  getline (cin, Cust_LName, '\n');
  if (Cust_LName.length () <= 1)
    ValidCustDetails = false;
  else
  {
    // Error line 177!
    for (unsigned short i = 0; i <= Cust_LName.length; i++)
      if (!isalpha(Cust_LName.at(i)))
        ValidCustDetails = false;
  }
  cin.ignore();
}
while(!ValidCustDetails);

person Steven O'Riordan    schedule 30.12.2014    source источник


Ответы (2)


Эти строки - ваша проблема:

for (unsigned short i = 0; i <= Cust_FName.length; i++)
for (unsigned short i = 0; i <= Cust_LName.length; i++)
//                                              ^^

std::string::length — это функция, поэтому вам нужно вызвать ее с помощью скобок:

for (unsigned short i = 0; i <= Cust_FName.length(); i++)
for (unsigned short i = 0; i <= Cust_LName.length(); i++)
person cdhowie    schedule 30.12.2014
comment
И чтобы исправить ошибку времени выполнения, замените <= на < или !=. - person Jarod42; 31.12.2014

Я подозреваю, что Cust_LName это std::string, поэтому вы должны добавить () после length:

Cust_LName.length()
person Jarod42    schedule 30.12.2014