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

Работа с const - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Новый стандарт принят! http://www.cyberforum.ru/cpp/thread341611.html
Barry Hedquist wrote: Just received word from ANSI that the C++ FDIS has officially been approved by ISO in a unanimous vote. 21 of 21 National Bodies voted to APPROVE. Под FDIS подразумевается N3290 (отличия которого от N3291 незначительны — см. comp.std.c++ — difference between documents n3290 and n3291->...
C++ mpl проход по элементам Пытался написать вывод элементов vector_c не через for_each. Не вышло. Кто подскажет как сие сделать наиболее удобно? Пример вектора. typedef boost::mpl::vector_c<char, 'h', 'e', 'l', 'l', 'o'>::type vector; Спасибо. http://www.cyberforum.ru/cpp/thread327906.html
C++ Compile-time алгоритмы. сборник
всем привет. предлагаю в этой теме обсуждать/реализовывать/выкладывать compile-time алгоритмы. под CUT'ом. подсчет FNV1a-хеш суммы строк: #include <iostream> template<size_t N, size_t I=0>
C++ Практические задания из собеседований
Предлагаю в данной теме выкладывать интересные и не очень практические задачи, которые попадаются на собеседованиях. Я начну: 1. Написать функцию, определяющую является ли заданное число степенью двойки. 2. Написать функцию, определяющую содержит ли односвязный список циклы (например, последний ссылается на второй). Просьба решения выкладывать под CUT'ом.
C++ realloc и вызов конструктора http://www.cyberforum.ru/cpp/thread300431.html
здраствуйте! мне препод сказал, что можно выделить память оператором new, а потом довыделить её с помощью realloc и каким-то образом вызвать конструкторы для новой памяти(ну или это я так его понял:D). Как это можно сделать? задание вобще такое: Во всех вариантах необходимо первоначально создать шаблон класса для работы с массивом произвольного типа данных. Шаблон должен включать: указатель,...
C++ Баг asio? или баг TCP стека? всем привет. повстречался с очень странным багом. и не могу определить кто бажит, asio, или TCP-стек. на стороне клиента, сохраняю отправляемые массивы в файл, чтоб убедится в том, что массивы не портятся. так и есть. массивы не искаженны: на стороне сервера, так же, сохраняю принятые массивы. но тут, массив приходит искаженным: подробнее

Показать сообщение отдельно
Go0gle
18 / 18 / 1
Регистрация: 08.09.2011
Сообщений: 22
09.09.2011, 23:51     Работа с const
Цитата Сообщение от adamo86 Посмотреть сообщение
А есть ли смысл тогда писать:

C++
1
int func(const char name)
то есть не указатель, а просто символ? Ведь все равно создается копия переменной.

Вот Вам маленький примерчик:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include "iostream"
#include "locale"
 
using namespace std ;
 
int getCode(const char name) ;      //Функция возвращает Аски код символа. Принимает константный символ
int getCode1(char  name);           //Функция возвращает Аски код символа. Принимает просто символ
 
int main()
{
    setlocale(LC_ALL,".OCP") ;
 
    const char pStr1 = 'a' ;       //Сивол , который будем передавать в функцию
 
    int nCodeBadge   = getCode(pStr1) ;
    int nCodeBadge1  = getCode1(pStr1) ;
 
    wcout << "Код символа A: " << nCodeBadge <<endl ;  //Получаем значение 97
    wcout << "Код символа A: " << nCodeBadge1<<endl ;  //Получаем значение 98
 
    
    return 0;
}
 
/* Функция принимает константный символ. Это значит, что внутри тела функции парамент name не может ни каким  образом изменить свое значение. Это гарантирует то, что содержимое name не будет изменено. 
*/
int getCode(const char name )
{
    name = 'b' ;    //Ошибка. Не имеем права 
    return (int) name ;
}
 
/* Функция принимает символ. Никакого const нету, поэтому мы может случайно или специально изменить содержимое
  параметра name. 
*/
int getCode1(char name)  //Передаем символ 'a' 
{   
    name = 'b' ;         //Меням содержимое    
    return (int) name;   //Мы передали символ 'a', но получили код символа 'b'
}
Надеюсь Вам помогло.
 
Текущее время: 16:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru