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

Файл заголовок - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Цикл и два вектора http://www.cyberforum.ru/cpp-beginners/thread617596.html
Доброй ночи, суть задачи: два вектора в одни водится "Имя" во второй значение типа int, нужно сделать проверку на уникальность введенных имен, и не могу понять как сделать, чтобы если имя не уникально то оно не записывалось бы в вектор Это упражнение первой части 4 главы, упражнение 19 в книге "Программирование. Принципы и практика использования C++" #include "std_lib_facilities.h"...
C++ Нахождение двойных пробелов Здравствуйте! Задача такова: Во всем тексте вставить переход на новую строку там, где есть два или больше пробела подряд Вот мой код: #include <stdio.h> #include <stdlib.h> #include <iostream.h> #include <conio.h> http://www.cyberforum.ru/cpp-beginners/thread617566.html
C++ Найти наибольший элемент массива в каждой строке.
Дан массив из n x m элементов. Найти наибольший элемент массива в каждой строке.
Веведение текста непосредственно на экран C++
Доброго времени суток всем, кто посетил эту тему. Я новичёк в программировании на c++. Заинтересовала такая вещь: Как вывести текст непосредственно на экран, а не в консоль. Т.е. вывел текст он постоял 5 секунд и исчез. Мои размышления: Создать окно как в WipApp и фон сделать прозрачным. И после в этом же окне написать текст.
C++ Объявление переменных внутри блока switch http://www.cyberforum.ru/cpp-beginners/thread617520.html
#include <iostream> int main() { int choice = 2; switch(choice) { //case 1: int x = 1; break; // ошибка case 1: int x; x = 1; break; // почему нет ошибки?
C++ Из Паскаля в С++ Здравствуйте. Помогите переписать этот код на C++. Сам пробовал, но не получается. var a,b:string; begin assign(input,'input.txt'); reset(input); assign(output,'output.txt'); rewrite(output); readln(a); read(b); a:=a+'a'; b:=b+'a'; while a+b<'aa' do подробнее

Показать сообщение отдельно
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
02.07.2012, 01:34     Файл заголовок
Потому что так Вы передаете по значению. То есть при входе в функцию будут созданы переменные, которым будет присвоены значения констант. Когда Вы передаете по ссылке естественно передается адрес переменной, которую можно изменить.
Вот смотрите, допустим, Вы написали так:
C++
1
std::cout << f(43) << std::endl;
А функция f имеет прототип f( int & );

Тогда при вызове функции должен передаться адрес параметра, в данном случае это константа 26. То есть будет доступна запись вида
C++
1
2
3
4
5
std::string f( int &a ) {
   a = 100;
   
   return "integer";
}
Что абсолютно бессмысленно.

В то же время, если прототип имеет вид f( int );

То при вызове функции, создастся переменная, которой будет присвоено значение константы, и которую мы уже можем менять внутри функции, и которая соответственно уничтожится при выходе из функции.
 
Текущее время: 16:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru