Antworten:
Ja, a struct
ist class
bis auf die Standardzugriffsebene (in Bezug auf Mitglieder und Vererbung) mit a identisch . (und die zusätzliche Bedeutung class
trägt bei Verwendung mit einer Vorlage)
Jede von einer Klasse unterstützte Funktionalität wird folglich von einer Struktur unterstützt. Sie würden Methoden genauso verwenden, wie Sie sie für eine Klasse verwenden würden.
struct foo {
int bar;
foo() : bar(3) {} //look, a constructor
int getBar()
{
return bar;
}
};
foo f;
int y = f.getBar(); // y is 3
Strukturen können Funktionen wie Klassen haben. Der einzige Unterschied besteht darin, dass sie standardmäßig öffentlich sind:
struct A {
void f() {}
};
Darüber hinaus können Strukturen auch Konstruktoren und Destruktoren haben.
struct A {
A() : x(5) {}
~A() {}
private: int x;
};