Вопросы по теме 'const-correctness'
Как справиться с инициализацией неконстантного ссылочного члена в константном объекте?
Допустим, у вас есть класс
class C
{
int * i;
public:
C(int * v):i(v) {};
void method() const; //this method does not change i
void method(); //this method changes i
}
Теперь вы...
2522 просмотров
schedule
13.06.2023
Логическая константа в D
D имеет два типа константности: неизменяемые переменные — это те, которые были объявлены неизменяемыми и всегда будут неизменяемыми, в то время как неизменяемые переменные — это просто версии объекта, доступные только для чтения.
Логическая...
1784 просмотров
schedule
02.06.2023
Вызов неконстантного метода для члена из константного метода
Я был удивлен, обнаружив эту "дыру" в "константе":
#include <stdio.h>
class A
{
int r ;
public:
A():r(0){}
void nonconst()
{
puts( "I am in ur nonconst method" ) ;
r++;
}
} ;
class B
{
A a ;
A* aPtr ;
public:
B(){...
382 просмотров
schedule
25.02.2023
C++ перегружает операторы преобразования
Я пытаюсь создать класс, который допускает неявное приведение к определенным встроенным типам, таким как unsigned long int, и поскольку я пытаюсь сделать это максимально корректно (это мой первый важный проект на C++), я столкнулся со странным вопрос...
44143 просмотров
schedule
25.01.2023
Являются ли референтные члены хорошей практикой? Являются константными членами?
Мы с коллегой обсуждаем, правильнее ли будет использовать константные или ссылочные члены. Члены const и reference делают класс некопируемым и неперемещаемым, если только вы не напишете свои собственные операторы копирования и перемещения, которые...
348 просмотров
schedule
11.03.2023
Инициализация неконстантного параметра строковым литералом
Итак, у меня есть этот код:
class ConstTest {
public:
explicit ConstTest(char* name) {}
};
int main() {
ConstTest t("blarghgh");
}
Очевидно, что он компилируется , хотя я думал, что этого не должно быть. Поскольку строковые...
1434 просмотров
schedule
18.06.2022
C ++ Предотвращение изменения данных константными методами с помощью указателя или ссылки на член
Скажем, у меня есть такой простой класс
class Foo
{
public:
void foo()const
{
str[5] = 'x';
obj->changeTheWorld();
x = 4;
y.get() = 5;
obj2->changeTheWorld();
}
private:
char *str;...
397 просмотров
schedule
21.04.2022
Должен ли я сделать свои локальные переменные постоянными или подвижными?
Мое поведение по умолчанию для любых объектов в локальных областях — сделать его const . Например.:
auto const cake = bake_cake(arguments);
Я стараюсь иметь как можно меньше нефункционального кода, поскольку это повышает читабельность (и...
435 просмотров
schedule
14.04.2022