#include struct Foo{ Foo() : val(0){} // demonstration of default argument void doit(int x = 1); unsigned int val; }; void Foo::doit(int x){ val += x; std::cout << val << std::endl; } int main() { Foo f; f.doit(3); f.doit(2); f.doit(); return 0; }