Qualcuno potrebbe farmi una lista dei modi di definire le "funzioni" in C++? A quanto so finora, si può farlo definendo una funzione (tipo nome (parametri)...), una macro (#define nome (parametri) operazioni, cosa vuol dire che le parentesi servono a evitare cose spiacevoli?) o un template (template <class T>...).
Dove posso trovare una buona guida per il C++ per chi non conosce il linguaggio ma ha esperienze di programmazione?