C++ Syntax – Meaning of & Symbol

c++referencesyntax

I want to know the meaning of & in the example below:

class1 &class1::instance(){

///something to do

}

Best Answer

The & operator has three meanings in C++.

  • "Bitwise AND", e.g. 2 & 1 == 3
  • "Address-of", e.g.: int x = 3; int* ptr = &x;
  • Reference type modifier, e.g. int x = 3; int& ref = x;

Here you have a reference type modifier. Your function class1 &class1::instance() is a member function of type class1 called instance, that returns a reference-to-class1. You can see this more clearly if you write class1& class1::instance() (which is equivalent to your compiler).