Грубо говоря, как-то так
- void a(A); // Функция принимает объект типа А
- void b(const A); // Функция принимает объект типа А (в теле функции объект будет считаться константным)
- void c(A*); // Функция принимает указатель на объект типа А
- void d(A**); // Функция принимает указатель на А*
- void e(A&); // Функция принимает ссылку на объект типа А
- void f(const A&); // Функция принимает константную ссылку на объект типа А
- void g(A&&); // Функция принимает r-value ссылку на объект типа А