C++无效使用成员函数(你忘了'()'吗?)

Ste*_*dan 2 c++ containers compiler-errors members

我无法编译程序.错误发生在第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);
Run Code Online (Sandbox Code Playgroud)

cdh*_*wie 9

这些行是你的问题:

for (unsigned short i = 0; i <= Cust_FName.length; i++)
for (unsigned short i = 0; i <= Cust_LName.length; i++)
//                                              ^^
Run Code Online (Sandbox Code Playgroud)

std::string::length 是一个函数,所以你需要用parens来调用它:

for (unsigned short i = 0; i <= Cust_FName.length(); i++)
for (unsigned short i = 0; i <= Cust_LName.length(); i++)
Run Code Online (Sandbox Code Playgroud)

  • 并修复运行时错误,将`<=`替换为`<`或`!=`. (2认同)