2016-05-20 3 views
-2

Я пытаюсь создать простую программу базы данных, которая дает пользователям возможность добавлять, удалять и редактировать строковые переменные.C++ if (Array [x] .length> 0)

Проблема, с которой я столкнулся: Назначение каждой добавленной переменной следующему элементу пустого массива.

-Им пользуюсь статическими массивами, пока я не узнаю больше о динамических массивах.

-Поскольку это вне контекста, я воссоздал здесь код, чтобы иметь больше смысла, извините, если я пропустил что-нибудь.

//static array declaration 
std::string names[5]; 

//string selection from main function 
std::string stringSel = "Item"; 

//boolean condition for loop 
bool completed = false; 

//if (names[x].length > 0) then increment x by 1 until names[x].length == 0 and then set that array element to the value from stringSel 
int x = 0 
while(completed == false) 
{ 
    //if the length of the element is greater than zero characters, increment the element 
    if (names[x].length > 0) 
    { 
     x++; 
    } 
    //if the length of the element is not greater than zero characters, set the string to that element 
    else 
    { 
     //The empty element is assigned the string and the entire array prints out 
     names[x] = stringSel; 
     std::cout << stringSel << " was added to the database.\nThis is the printout of all current items: " << names; 
     completed = true; 
    } 
} 

Ошибка, которую я получаю, исходит из моего условия if-statements. «.» Подчеркивается красный

1 IntelliSense: указатель на связанную функцию можно использовать только для вызова функции

ответ

4
names[x].length 

std::string::length() является функцией члена, а не член данных, поэтому для доступа к нему необходимо чтобы позвонить, например:

names[x].length() 
+0

Спасибо, что решил, что легко и имеет смысл. Итак, std класс, строка объекта и длина члена? Недавно я узнал, как работают классы и объекты. –

+1

@Bijan Kelley Добро пожаловать. 'std' - это пространство имен, к которому принадлежит класс' string', и 'length()' является функцией-членом класса 'string'. Объект класса 'string' в этом случае - это то, что' names [x] 'выполняется с момента создания массива типа' std :: string names [5]; '. –

+0

Благодарим вас за освобождение! Просто узнал об пространствах имен на прошлой неделе, так что, похоже, мы убили двух птиц одним выстрелом. –

Смежные вопросы