Returning a reference : function return « Function « C++ Tutorial






#include <iostream>
#include <string>
#include <vector>

using namespace std;

string& refToElement(vector<string>& inventory, int i);

int main()
{
    vector<string> inventory;
    inventory.push_back("sword");
    inventory.push_back("armor");
    inventory.push_back("shield");

    cout << refToElement(inventory, 0) << endl;

    //assigns one reference to another -- inexpensive assignment
    string& rStr = refToElement(inventory, 1);
    cout << rStr << endl;

    //copies a string object -- expensive assignment
    string str = refToElement(inventory, 2);
    cout << str << endl;

    //altering the string object through a returned reference
    rStr = "Healing Potion";
    cout << inventory[1] << endl;

    return 0;
}

//returns a reference to a string
string& refToElement(vector<string>& vec, int i)
{
    return vec[i];
}








7.8.function return
7.8.1.Return void from a function
7.8.2.void function with return statement
7.8.3.Return a value from a function
7.8.4.Return a double value from a function
7.8.5.Return a pointer from a function
7.8.6.Multiple return statements in a function
7.8.7.Returning multiple values from a function using pointer
7.8.8.More than one returning value
7.8.9.Returning a reference
7.8.10.Return class instance from a function