Элемент center_pt
инициализируется по умолчанию, и такая операция вызывает конструктор по умолчанию no arguments Point()
. Однако это не определено в классе Point
и, следовательно, дает вам полученную вами ошибку.
Circle::Circle(const Point& center, double radius)
{
center_pt = center; //<-- this is an assignment
//default init has already occurred BEFORE this point
radius_size = radius;
}
Прежде чем вы сможете назначить center_pt
здесь, вам нужно что-то назначить. Поэтому компилятор пытается инициализировать center_pt
по умолчанию, прежде чем пытаться выполнить назначение.
Вместо этого, если вы используете список инициализаторов члена , вы можете избежать проблемы по умолчанию построение с последующим присваиванием:
Circle::Circle(const Point& center, double radius):
center_pt(center),
radius_size(radius)
{
}
Когда вы создаете класс, вы по существу выделяете память для хранения различных членов этого класса. Итак, представьте center_pt
и radius_size
как места в памяти, чтобы эти значения сохранялись для каждого экземпляра вашего класса. Когда вы создаете класс, эти переменные должны получать заданные значения по умолчанию, если вы не укажете ничего, что вы получите по умолчанию сконструированные значения, независимо от того, что это такое. Вы можете назначать значения позже этим местоположениям, но некоторые инициализации всегда будут возникать во время создания класса. Если вы используете список инициализаторов, вы можете явно указать, что будет помещено в память в первый раз.
Используя список инициализаторов членов, ваши члены создаются соответствующим образом в первый раз. Это также помогает экономить некоторые ненужные операции.
Вы не установили правильный дистрибутив Eclipse. Попробуйте установить программу с надписью «Eclipse IDE для разработчиков Java EE».
В Eclipse Kepler
JST Server Adapters
и JST Server Adapters Extensions
и установите его . После перезапуска Eclipse перейдите в Window / Preferences / Server / Среды выполнения
У меня была такая же проблема. Я использовал платформу Eclipse, и в моем представлении шоу отсутствовал сервер. Чтобы это исправить, выполните следующие действия:
help> установите новое программное обеспечение
при работе с: выберите: «Сайт обновления Indigo - http: //download.eclipse.org/releases/indigo/ "после выбора все доступное программное обеспечение будет отображаться в разделе под фильтром типа text
Развернуть« Web, XML и Java EE Development »и выберите« Расширения адаптеров JST Server »
, затем нажмите« Далее »и завершите. Сервер должен отображаться в режиме просмотра
Вы также можете установить необходимые пакеты с помощью Справка -> Установить новое программное обеспечение ...
См. http://www.eclipse.org/downloads/compare.php для пакетов, которые необходимо установить, чтобы иметь IDE затмения для разработчиков Java EE