Passing by References versus raw pointers in C++. Const also covered

(Last Updated On: May 17, 2010)
Learn the Secret

Get  our 2 Free Books

Get these now which land directly to their inbox.
Invalid email address

Passing by References versus raw pointers in C++. Const also covered
References need to be initialized during declaration (i.e. int &i=10;) and they cannot contains values of null. They are an implicit pointer, they do not require dereferencing, no memory address required, and are safer then pointers.
Pointers offer advantages over references including they do not need to be initialized, program may need nulls so use pointers, and they can be stored in containers.

You should only initialize a reference within a non static member list so you should initialize references in constructors. It is also safer to pass by reference versus pointers. You should also pass by reference if there is expected large amount of memory being passed to functions.

Pre-pending an ampersande ( & ) makes a variable or object a reference. For example,
Int a;
Int b=&a;

Below is an example of passing by reference:
void swap( int & x, int & y )
{
int temp = x;
x = y;
y = temp;
}
int a=2, b=3;
swap( a, b );

No extra memory is needed so it makes passing by reference very efficient.

You should also use “const” reference arguments as well. Because of const, it will inadvertently protect your data that could get altered, passing without a const only enables you pass a non const only, and using const reference allows the function to generate temporary variables. This is a corrected example:

#include
using namespace std;

double Cube( const double & num)
{
double result;
result = num * num * num;
return result;
}

int main() {
long temp = 4L;
double x = 3;
double value = Cube ( temp ); // long to double conversion
cout << "v= " << value << endl; return 0; }

NOTE I now post my TRADING ALERTS into my personal FACEBOOK ACCOUNT and TWITTER. Don't worry as I don't post stupid cat videos or what I eat!
This entry was posted in Quant Development and tagged , , , on by .

About caustic

Hi i there My name is Bryan Downing. I am part of a company called QuantLabs.Net This is specifically a company with a high profile blog about technology, trading, financial, investment, quant, etc. It posts things on how to do job interviews with large companies like Morgan Stanley, Bloomberg, Citibank, and IBM. It also posts different unique tips and tricks on Java, C++, or C programming. It posts about different techniques in learning about Matlab and building models or strategies. There is a lot here if you are into venturing into the financial world like quant or technical analysis. It also discusses the future generation of trading and programming Specialties: C++, Java, C#, Matlab, quant, models, strategies, technical analysis, linux, windows P.S. I have been known to be the worst typist. Do not be offended by it as I like to bang stuff out and put priorty of what I do over typing. Maybe one day I can get a full time copy editor to help out. Do note I prefer videos as they are much easier to produce so check out my many video at youtube.com/quantlabs