Форум программистов, компьютерный форум CyberForum.ru

Синтаксис. Использование & - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Конструктор и декструктор, явное и неявное объявление http://www.cyberforum.ru/cpp-beginners/thread1091617.html
Конструктор и декструктор, явное и неявное объявление? Подскажите где об этом можно почитать?
C++ Вычисление суммы элементов главной диагонали матрицы 1.составить блок-схему алгоритма решения задачи и написать программу на языке С++ вычисления суммы элементов главной диагонали матрицы МхМ http://www.cyberforum.ru/cpp-beginners/thread1091614.html
C++ Не могу заполнить массив char
{ struct Univer{ char fam; char kaf; char dol; double zar;}; Univer *p1=new Univer; Univer *p2=new Univer; p1->fam="Иванов";
C++ Как правильно указать путь к файлу?
Парни! Такое дело: есть приложение, есть DLL, написанная мною, которая проигрывает определённый звук по "команде" из приложения. В моей DLL есть функция которая читает WAV файл. Вот она: LoadWaveFile("\\sound01.wav", &m_secondaryBuffer0); WAV файл находиться в C:\ Вопрос: как или что написать что бы функция открывала файл находящийся в папке с приложением, при этом не указывая точного...
C++ ERROR with float http://www.cyberforum.ru/cpp-beginners/thread1091599.html
Здравствуйте.. задача про нахождение общего сопротивления для параллельного и последовательного соединений(здесь все на кыргызском), но дело не в этом, а в том что тут какая то ошибка с float, я никак не пойму... с динамическими массивами знаком поверхностно... #include <iostream> using namespace std; float udaalash(float,int); float jarysh(float,int);
C++ Заполнить двумерный массив следующим образом Нужно заполнить двумерный массив следующим образом. Не могу додуматься, как все сделать... :cry: подробнее

Показать сообщение отдельно
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
07.02.2014, 20:28     Синтаксис. Использование &
getNameAmp вернёт ссылку (то есть, указание "где лежит") на строку, которая уже была уничтожена при выходе из функции и уже нигде не лежит. Работа с этой ссылкой приведёт к неопределённому поведению, на практике - к неправильной работе программы и неожиданным и неочевидным ошибкам.
getName вернёт копию строки, которую никак не затронет уничтожение оригинала и которой можно безопасно пользоваться.
Аналогично, первый вариант foo получает копию строки, и всё, что он проделает с этой копией, не отразится на оригинале. Второй вариант получает ссылку на оригинал и имеет возможность этот оригинал изменить:
C++
1
2
3
4
5
6
7
8
9
10
11
12
void foo1(std::string a) {a = "bbb";}
 
void foo2(std::string& a) {a = "bbb";}
 
int main(){
    string x("aaa");
    cout << x;  // напечатает aaa
    foo1(x);
    cout << x;  // снова напечатает aaa
    foo2(x);
    cout << x;  // напечатает bbb
}
 
Текущее время: 15:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru