Function for C++ struct

John picture John · Oct 29, 2012 · Viewed 161.9k times · Source

Usually we can define a variable for a C++ struct, as in

struct foo {
  int bar;
};

Can we also define functions for a struct? How would we use those functions?

Answer

Luchian Grigore picture Luchian Grigore · Oct 29, 2012

Yes, a struct is identical to a class except for the default access level (member-wise and inheritance-wise). (and the extra meaning class carries when used with a template)

Every functionality supported by a class is consequently supported by a struct. You'd use methods the same as you'd use them for a class.

struct foo {
  int bar;
  foo() : bar(3) {}   //look, a constructor
  int getBar() 
  { 
    return bar; 
  }
};

foo f;
int y = f.getBar(); // y is 3