Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Chotkay
0 / 0 / 0
Регистрация: 03.05.2016
Сообщений: 66
Завершенные тесты: 2
1

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

21.05.2016, 16:23. Просмотров 134. Ответов 5
Метки нет (Все метки)

У меня есть два конструктора: первый по умолчанию

C++
1
2
3
4
5
6
Circle() //Конструктор по умолчанию (инициализирует переменные)
{
itsRadius = 20; 
itsX = 100;
itsY = 100;
}
и второй, который вводит данные с клавиатуры:

C++
1
2
3
4
5
6
7
8
9
Circle() 
{
int itsX_{}, itsY_{}, itsRadius_{};
cout << "Enter X, Y and R" << endl;
cin >> itsX_ >> itsY_ >> itsRadius_;
itsX = itsX_;
itsY = itsY_;
itsRadius = itsRadius_;
}
При запуске программы я получаю ошибки: Ошибка1 error C2535: Circle::Circle(void): функция-член уже определена или объявлена || Ошибка2 error C2601: itsX_: недопустимые локальные определения функций || Ошибка3 error C1903: не удается восстановить после предыдущих ошибок; остановка компиляции

В чём дело?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2016, 16:23
Ответы с готовыми решениями:

конструкторы
У меня вопрос: если программа с конструкторами, то нужно ли создавать объект в...

конструкторы
Доброе время суток! Помогите разобраться с конструктором. Что это такое и с...

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

Конструкторы C++
Объясните, пожалуйста, своими словами, что являют собой конструкторы, для чего...

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

5
0x90h
325 / 291 / 109
Регистрация: 01.10.2015
Сообщений: 884
21.05.2016, 16:31 2
С точки зрения компилятора, вы не объявляете вторую форму конструктора, а переопределяете ранее созданный метод, поскольку оба объявления абсолютно идентичны
0
retmas
Жарю без масла
865 / 747 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
21.05.2016, 16:31 3
потому что они оба - по умолчанию
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
7056 / 3358 / 455
Регистрация: 04.12.2011
Сообщений: 9,341
Записей в блоге: 5
21.05.2016, 16:33 4
Chotkay, компилятор прав. Вы пытаетесь объявить два метода с одной и той же сигнатурой.
Вообще заставлять конструктор общаться с конкретным потоком, это плохая идея. Промежуточные переменные там кстати ненужны. И фигурные скобки писать не с сего ни с того тоже ненужно. Переделайте его под
C++
1
Circle(int itsX_, int itsY_, int itsRadius_);
А создавать экземпляр можете статическим методом:
C++
1
2
3
4
5
6
7
Circle createInstance()
{
int itsX_, itsY_, itsRadius_;
cout << "Enter X, Y and R" << endl;
cin >> itsX_ >> itsY_ >> itsRadius_;
return Circle(itsX_, itsY_, itsRadius_);
}
1
Chotkay
0 / 0 / 0
Регистрация: 03.05.2016
Сообщений: 66
Завершенные тесты: 2
21.05.2016, 16:33  [ТС] 5
ну а как мне тогда объявить второй конструктор?
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
7056 / 3358 / 455
Регистрация: 04.12.2011
Сообщений: 9,341
Записей в блоге: 5
21.05.2016, 16:35 6
Цитата Сообщение от Chotkay Посмотреть сообщение
ну а как мне тогда объявить второй конструктор?
читайте: перегрузка функций.
0
21.05.2016, 16:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.05.2016, 16:35

Конструкторы С++
Всем привет, помогите довести программу до ума :) Заранее благодарю...

Конструкторы
Объясните на пальцах, для чего нужны конструкторы?

Конструкторы
#include&lt;iostream&gt; class A { public: A(int x) : _x(x) {} ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru