Запитання з тегом «const»

Константи програмування - це визначення, значення яких фіксується впродовж виконання програми. Літерали на більшості мов, наприклад, константи. У референційно прозорих стилях програмування всі визначення є постійними. Область зберігання даних, що відповідає вимогам const (об'єкт, поле, змінна, параметр) - це те, що "ніколи не змінюється", що дозволяє додатково оптимізувати генератор коду та додаткову статичну перевірку правильності програми.


9
Як я можу переносити функцію C ++, яка приймає char ** на одних платформах і const char ** на інших?
На моїх машинах Linux (і OS X) iconv()функція має такий прототип: size_t iconv (iconv_t, char **inbuf... на FreeBSD це виглядає так: size_t iconv (iconv_t, const char **inbuf... Я хотів би, щоб мій код C ++ був побудований на обох платформах. З компіляторами C передача параметра char**для const char**параметра (або навпаки), …
91 c++  const  portability 

5
Видалення покажчика на const (T const *)
У мене є основне питання стосовно покажчиків const. Мені не дозволено викликати будь-які функції, що не є учасниками const, за допомогою вказівника const. Однак мені дозволено це робити на покажчику const: delete p; Це викличе деструктор класу, який по суті є неконстентним 'методом'. Чому це дозволено? Чи просто для підтримки …

6
Чому оператор [] не є const для карт STL?
Надуманий приклад для питання: void MyClass::MyFunction( int x ) const { std::cout << m_map[x] << std::endl } Це не компілюється, оскільки оператор [] не є const. Це прикро, оскільки синтаксис [] виглядає дуже чисто. Натомість я маю зробити щось подібне: void MyClass::MyFunction( int x ) const { MyMap iter = …
89 c++  const 

6
Чому посилання не є “const” у C ++?
Ми знаємо, що "змінна const" вказує на те, що коли вона призначена, ви не можете змінити змінну, наприклад: int const i = 1; i = 2; Програму вище не вдасться скомпілювати; gcc запитує з помилкою: assignment of read-only variable 'i' Немає проблем, я можу це зрозуміти, але наступний приклад мені …

5
Ключове слово 'const' не робить значення незмінним. Що це означає?
Там це визначення Const в Досліджуючи ES6 доктором Акселем Rauschmayer: constпрацює як let, але заявлену змінну потрібно негайно ініціалізувати зі значенням, яке згодом не можна змінити . […] const bar = 123; bar = 456; // TypeError: `bar` is read-only а потім він пише Підводний камінь: const не робить значення …

6
Змінено змінений масив у діапазоні файлу
Я хочу створити постійний статичний масив, який буде використовуватись у всьому моєму файлі реалізації Objective-C, подібному до приблизно такого на верхньому рівні мого файлу ".m": static const int NUM_TYPES = 4; static int types[NUM_TYPES] = { 1, 2, 3, 4 }; Я планую використовувати NUM_TYPESпізніше у файлі, тому я хотів …

3
Ініціалізуйте кілька членів постійного класу, використовуючи одну виклик функції C ++
Якщо у мене є дві різні змінні постійних членів, які обидві потрібно ініціалізувати на основі одного і того ж виклику функції, чи є спосіб зробити це без виклику функції двічі? Наприклад, клас дробу, де чисельник і знаменник є постійними. int gcd(int a, int b); // Greatest Common Divisor class Fraction …

4
Чому функції абсолютного значення в С не приймають введення const?
В C прототипом функції абсолютного значення (що приймає поплавок) є float fabsf( float ); Чому цей прототип не приймає постійне значення, як це: float fabsf( float const ); fabsf не змінить значення вводу, чи не так? Якщо у мене є функція, яка приймає вхід і викликає fabsf, чи змушений я …


3
Виклик функції з покажчиком на non-const і вказівником на const аргументи однієї адреси
Я хочу написати функцію, яка вводить масив даних і виводить інший масив даних за допомогою покажчиків. Мені цікаво, що це результат, якщо обидва srcі dstвказали на одну і ту ж адресу, тому що я знаю, що компілятор може оптимізувати const. Це невизначена поведінка? (Я позначив як C, так і C …

2
Я хочу додати новий segmentId (з тим самим іменем) у свій масив відображення, але з іншим elementId, але тим же методом
Нижче розміщено MapperInterface.php Я намагаюся розібратися, як додати твердження if-else в const. картографічний масив. Щось таке: if (LIN02 == “VN”) o Treat LIN03 as the SKU · else if (LIN04 == “VN”) o Treat LIN05 as the SKU <?php declare(strict_types=1); namespace Direct\OrderUpdate\Api; use Direct\OrderUpdate\Api\OrderUpdateInterface; /** * Interface MapperInterface * Translates …
14 php  arrays  mapping  const 

2
Як можна швидко оцінити expr exst
Я випробував вирази const, які оцінюються під час компіляції. Але я грав із прикладом, який здається неймовірно швидким, коли виконується під час компіляції. #include<iostream> constexpr long int fib(int n) { return (n <= 1)? n : fib(n-1) + fib(n-2); } int main () { long int res = fib(45); std::cout …
13 c++  const  constexpr 


1
Як запобігти модифікації даних масиву?
Скажіть, у мене клас, який виглядає приблизно так (це лише приклад): class A { double *ptr; public: A() : ptr( new double[100] ) {} A( const A &other ) { other.ptr[7] = 15; } void doNotChangeMyData() const { ptr[43] = 14; } void changeMyData() { ptr[43] = 14; } ~A() …
9 c++  const 

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.