Структури в С++
31-08-2012
В този урок ще се запознаем със структурите в С++. С помощта на структурите ние можем да съхраняваме много различни стойности в променливи от различни типове под едно общо име.
Структурите са изключително полезни когато се налага да групираме заедно голям обем от данни. Например, задържане на записи от база данни, запазване на данни за контакти в адресни книги.
В примера за адресната книга, структурата може да се използва да съдържа цялата информация за един контакт -име, адрес, телефонен номер и т.н.

Дефинирането на структури става по следния начин:

struct Tag
{
Members;
};


Тук 'Tag' е името на структурата. 'Members' е променливите в структурата.
За създаването на една структура, може да имаме следния ситаксис:
struct Tag име_на_единична структура;


За да достигнем до променлива в структурата използваме:

име_на_единична структура.име_на_променлива;

Пример:

struct Tag
{
int x;
};
struct Tag adress;
adress.x = 33; //по този начин достига до променливата в структурата ни


Примерна програма:


struct database
{
int id_number;
int age;
float salary;
};

int main()
{
database employee; // Тук имаме employee съдържаща променливи в нея, които могат да са различни.
employee.age = 22;
employee.id_number = 1;
employee.salary = 12000.21;
}

Структурата database съдържа три променливи в нея - id_number, age, salary. След това създаваме една променлива employee към database. Така за да променим базата използваме employee. пред всяка от другите променливи.

Unions(съюзи) са подобни на структурите, но с тази разлика, че в unions всички променливи използват една и съща памет. Когато е деклариран union, компилатора заделя памет колкото е най-големия тип данни в него.
За пример имаме 100 ябълки. Компилатора( продавача ) ни продава сандък, който може да ги побере всичките. Да, но ние може да решим да сложим само 1 или 10 ябълки в него. Така работят и unions заделя се памет за най-големия тип данни, но ние може и да не го използваме.

В unions операторът '.' също се използва за достъп до различни променливи.

С pointers ( пойнтери ) можем директно да достигнем до информацията вътре в структурата, която искаме. Операторът, който използваме тук е '->'.

Пример:

#include <iostream>

using namespace std;

struct xampl
{
int x;
};

int main()
{
xampl structure;
xampl *ptr;

structure.x = 12;
ptr = &structure; // Използваме &, когато използваме пойнтери в структурата
cout<< ptr->x; // Всъщност пойнтера '->' казва на програмата "вземи/изведи всичко каквото има на този // адрес от паметта

cin.get();
}

Източник:
http://www.cprogramming.com





/ Трябва да сте регистриран за да напишете коментар /