Funktion für C ++ struct


90

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

struct foo {
  int bar;
};

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


4
Ja. Das gleiche wie für eine Klasse in C ++
DumbCoder

Antworten:


141

Ja, a structist classbis auf die Standardzugriffsebene (in Bezug auf Mitglieder und Vererbung) mit a identisch . (und die zusätzliche Bedeutung classträ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

37

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;
};
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.