-2

I have a kinda deep C experience but I am a C++ beginner. References seem to be easier to use than pointers, but it drives me crazy. I think all references can be replaced with pointers. In my case, pointers are not that hard because I spent tons of times studying them. Is it common among C++ programmers to use references or is it just recommended??

isanae
  • 3,253
  • 1
  • 22
  • 47
user3595632
  • 5,380
  • 10
  • 55
  • 111
  • IMO references vs pointers is a style issue, and as such, there is no right answer. – user253751 May 31 '15 at 03:48
  • In some cases (like copy constructors and some overloaded operators), references are necessary. But if you know pointer really well, I don´t see why it is a problem. – deviantfan May 31 '15 at 03:53

2 Answers2

1

One thing that references prevent is NULL pointers. If you want to ensure that a parameter passed to a function is not NULL, you can pass by reference.

void func(int& i); // i cannot be NULL
Daniel
  • 6,595
  • 9
  • 38
  • 70
1

References cannot always be replaced by pointers:

C a, b, c;
a = b - c;

If there is an operator-() for C, it either needs to receive its arguments:

  • by copy:

    C operator-(C left, C right);
    
  • by address:

    C operator-(C* left, C* right);
    

    in which case the call becomes:

    a = &b - &c;
    

    (which already has a meaning in C)

  • or by using a new construct that has no equivalent in C. This became references in C++.

There are a variety of questions you can refer to concerning the use of references versus pointers.

Community
  • 1
  • 1
isanae
  • 3,253
  • 1
  • 22
  • 47