Język C++ umożliwia deklarowanie własnych struktur danych. Struktura to obiekt złożony z jednej lub kilku zmiennych (być może różnych typów) zgrupowanych pod jedną nazwą. W niektórych językach struktury nazwane są rekordami. Struktury ułatwiają zorganizowanie danych, ponieważ grupę powiązanych ze sobą zmiennych pozwalają traktować jako jeden obiekt.

Definiowanie struktur

Przykładem prostej i zrozumiałej struktury może być punkt na płaszczyźnie. Z założenia do opisania punktu wystarczą dwie składowe:x, y. Taką strukturę możemy zapisać w sposób następujący:

struct punkt{
	int x;
	int y;
	};

Słowo kluczowe struct rozpoczyna deklarację struktury, którą tworzy lista deklaracji zawarta pomiędzy nawiasami klamrowymi. Po słowie struct może występować opcjonalnie nazwa będąca etykietą tworzonej struktury. Etykieta identyfikuje strukturę i ułatwia deklarację obiektów danego typu. Zmienne zadeklarowane wewnątrz struktury to jej składowe. Deklaracja struktury to deklaracja typu, możemy po niej podać nazwy zmiennych danego typu tak jak w przypadku zwykłych zmiennych:

struct {....}a,b,c;

zapis taki odpowiada deklaracji:

int d,e,f;

Oczywiście w pierwszym przypadku definiujemy zmienne typu struct {...}, w drugim natomiast zmienne typu int. Jeśli w deklaracji struktury użyliśmy etykiety, to może ona być użyta do deklaracji zmiennych danego typu. Przykładowo zmienne typu punkt możemy zadeklarować na dwa sposoby:

struct punkt{
	int x;
	int y;
	}p1,p2;

lub:

struct punkt{
	int x;
	int y;
	};
	. . . .
	struct punkt p1,p2;

Identycznie jak w przypadku "zwykłych" zmiennych strukturę można zainicjować wartościami początkowymi:

strukt punkt p1={10,12};

Dostęp do poszczególnych składowych umożliwia konstrukcja:

 nazwa_struktury.składowa

Przykładowo dla zadeklarowanej wcześniej struktury p1:

 p1.x;

Dozwolonymi operacjami dla struktur są: kopiowanie w całości na inną strukturę, pobieranie adresu struktury za pomocą operatora &, odwoływanie się do składowych struktur. Nie można natomiast porównywać całych struktur ze sobą.