2 / 2 / 0
Регистрация: 18.09.2021
Сообщений: 119
1

Константный конструктор

21.12.2022, 21:09. Показов 906. Ответов 4

Author24 — интернет-сервис помощи студентам
Добрый вечер. Люди, для чего нужен константный конструктор и каковы отличия от обычного конструктора? Чем он примечателен?
C++
1
2
3
4
5
6
7
8
9
 
class Person {
public:
    int age;
    // константный конструкор
    const Person(int a) {
        age = b;
    }
};
??
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.12.2022, 21:09
Ответы с готовыми решениями:

Существует ли константный указатель на константный литерал?
В книге Стивена Пратты я узнал, что существует ссылка только на константный литерал (&&) и, как на...

Константный метод и константный аргумент в методе
Товарищи! Возник вопрос, в чем же разница, между константным методом и ссылкой на const объект в...

Константный указатель на константный тип
Если в аргумент функции передается константный указатель на константный int, например, то это можно...

Что значит константный указатель на объект, указатель на константный объект, и как это можно использовать?
Подскажите, что значит константный указатель на объект, указатель на константный объект, и как это...

Константный указатель
Для записи через * T * const name; Для записи через ???

4
фрилансер
5842 / 5370 / 1102
Регистрация: 11.10.2019
Сообщений: 14,339
21.12.2022, 21:29 2
Цитата Сообщение от Bumis Посмотреть сообщение
для чего нужен константный конструктор
не нужен. Это не скомпилится же

Добавлено через 1 минуту
и идентификатора b тоже нет )

Добавлено через 2 минуты
может, имелось в виду constexpr

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Person
{
public:
    int age;
 
    constexpr Person(int a):age(a)
    {
        
    }
};
 
int main()
{
    constexpr Person p(42);
}
0
2 / 2 / 0
Регистрация: 18.09.2021
Сообщений: 119
21.12.2022, 21:35  [ТС] 3
Так, извиняюсь, я вас напутал с примером - щелбан с ноги мне! Я имел ввиду такой код, который компилится - по крайней мере в компиляторе Visual Studio c++(14-й стандарт):

C++
1
2
3
4
5
6
7
8
9
10
class Person {
public:
    int age;
 
    // константный конструкор
    const Person(int a) {
        age = a;
    }
 
};
0
фрилансер
5842 / 5370 / 1102
Регистрация: 11.10.2019
Сообщений: 14,339
21.12.2022, 22:09 4
Лучший ответ Сообщение было отмечено Bumis как решение

Решение

Bumis, мдя, в студии реально компилится. А clang и gcc выдают леща

Будем считать это недоработкой студийного компилятора
1
3697 / 2647 / 761
Регистрация: 29.06.2020
Сообщений: 9,800
27.12.2022, 22:56 5
Bumis, константность членов-функций задаются после ее объявления.
И компилятор внятным языком нам рассказывает что мы делаем что-то не так :
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
class Person {
public:
    int age;
    // константный конструкор
    Person(int a) const {
        age = a;
    }
};
int main(){
}
Код
main.cpp:6:19: error: constructors may not be cv-qualified
    6 |     Person(int a) const {
      |                   ^~~~~
0
27.12.2022, 22:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.12.2022, 22:56
Помогаю со студенческими работами здесь

Константный указатель
Здравствуйте! Имею класс - MyClass. Константный указатель на него: const MyClass *pMyClass; ...

Константный метод
Всем привет,возник вопрос по поводу const в конце метода.Насколько я понял,const в конце метода не...

Константный указатель
Почему в данном примере константный указатель может быть использован для вывода элементов вектора?...

/Константный итератор
Нужно создать константный итератор. 1) Какой из вариантов будет правильней (в коде их отличие - у...

Константный метод и указатель this
class CBox { double Length; double Height; double Width; public: CBox(double a,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru