Посилання

Посилання – це друге ім’я для іншої змінної. Посилання оголошуються за допомогою символу &. При оголошенні посилання повинні бути ініціалізовані (посилання може бути ініціалізоване лише один раз, неможливо зробити так, щоб дане посилання посилалося на інший об’єкт).

 

double agent = .028;

double &bond = agent; //bond посилається на agent

// ...

bond /= 4.0; // agent == .007

 

Посилання підвищують ефективність програми під час передачі великих об’єктів у функції, оскільки не вимагають копіювання об’єкта в стек.

 

Приклад:

 

// LastChar.cpp

#include <string>

#include <iostream>

using namespace std;

 

char LastChar(const string& s)

{

return s.length()?s[s.length()-1]:'';

}

 

void main()

{

string word = "barbecue";

char c = LastChar(word);

cout<<c<<endl;

}

 

Посилання надають функціям механізм зміни значення переданих їм аргументів.

 

inline void Swap (int& a, int& b)

{

int t = a;

a = b;

b = t;

}

 

// ...

Swap (x, y); // не потрібно передавати адреси

 

Посилання використовуються, головним чином, при визначенні функцій для типу class. Посилання не є самостійним типом і існують тільки після ініціалізації. Які-небудь операції можуть виконуватися не над посиланнями, а над об’єктами, на які вони посилаються. Посилання не може посилатися на інше посилання. Крім того, не може бути ні масиву посилань, ні покажчиків на посилання.


 

Лекція 6. Масиви і структури