it-swarm.com.de

Funktion für C ++ - Struktur

Normalerweise können wir eine Variable für eine C++ - Struktur definieren, wie in

struct foo {
  int bar;
};

Können wir auch Funktionen für eine Struktur definieren? Wie würden wir diese Funktionen nutzen?

72
John

Ja, ein struct ist mit Ausnahme der Standardzugriffsebene (in Bezug auf Mitglieder und Vererbung) mit einem class identisch. (und die zusätzliche Bedeutung von class 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
115
Luchian Grigore

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 Konstruktoren und Destruktoren enthalten.

struct A {
    A() : x(5) {}
    ~A() {}

    private: int x;
};
30
0x499602D2