Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2012, 20:38   #11
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

А, у Вас там еще второй конструктор есть.
Код:
vertex* arr_ver[30];
// тридцать указателей
// от 29 до 0 создать объекты
for (int i = 30; i--;)
{
    arr_ver[i] = new vertex(.../ПАРАМЕТРЫ_КОНСТРУКТОРА/...);
}
В цикле ошибки не вижу.
EUGY вне форума Ответить с цитированием
Старый 02.05.2012, 20:42   #12
Стремящийся
Форумчанин
 
Аватар для Стремящийся
 
Регистрация: 01.11.2011
Сообщений: 172
По умолчанию

Посмотри ответ EUGY, а реализация конструктора по умолчанию обязательна. Ты же создал реализацию конструтора с параметрами. А как компилятор знает как инициализировать данные в объекте.

Цитата:
Сообщение от EUGY Посмотреть сообщение
Если она декларируется, то да.
Не нужна, тогда убирай прототип. Компиль подставит свою реализацию.
Извольте, а какую реализацию подставит? Видимо я чего недопонимаю
Желание тысяча возможностей, нежелание - тысяча причин

Последний раз редактировалось Stilet; 02.05.2012 в 20:52.
Стремящийся вне форума Ответить с цитированием
Старый 02.05.2012, 20:52   #13
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Цитата:
Извольте, а какую реализацию подставит? Видимо я чего недопонимаю
Я просто сначала не увидел, что у автора еще один конструктор есть.
Если бы не было никакого, то компилятор генерирует реализацию конструктора по умолчанию. Причем обрати внимание на разницу.
arr_ver[i] = new vertex // конструктор по умолчанию
arr_ver[i] = new vertex() //конструктор по умолчанию с инициализацией
EUGY вне форума Ответить с цитированием
Старый 02.05.2012, 20:56   #14
Стремящийся
Форумчанин
 
Аватар для Стремящийся
 
Регистрация: 01.11.2011
Сообщений: 172
По умолчанию

А какая в первом случае будет реализация?
Желание тысяча возможностей, нежелание - тысяча причин
Стремящийся вне форума Ответить с цитированием
Старый 02.05.2012, 21:07   #15
David Villa
Пользователь
 
Аватар для David Villa
 
Регистрация: 24.12.2011
Сообщений: 54
По умолчанию

Цитата:
Сообщение от EUGY Посмотреть сообщение
В цикле ошибки не вижу.
согласен, про ошибку зря сказал. не знал что условие конца цикла и изменение счетчика цикла можно соединить таким образом.

В цикле заполнения массива применил свой второй конструктор и все получилось. Всем большое спасибо!!!
David Villa вне форума Ответить с цитированием
Старый 02.05.2012, 21:07   #16
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Ну проделай эксперимент
Код:
class X
{
    int y;
}

X* px1 = new X;
X* px2 = new X();
И посмотри на разницу в состоянии полей класса.
EUGY вне форума Ответить с цитированием
Старый 02.05.2012, 21:10   #17
David Villa
Пользователь
 
Аватар для David Villa
 
Регистрация: 24.12.2011
Сообщений: 54
По умолчанию

И еще вопрос, создавать объекты в цикле обязательно с 29 по 0 или можно наоборот? и есть ли разница?
David Villa вне форума Ответить с цитированием
Старый 02.05.2012, 21:15   #18
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Цитата:
Сообщение от David Villa Посмотреть сообщение
И еще вопрос, создавать объекты в цикле обязательно с 29 по 0 или можно наоборот? и есть ли разница?
Никакой разницы.
Я лично написал с декрементом, потому что так короче.
EUGY вне форума Ответить с цитированием
Старый 02.05.2012, 21:20   #19
David Villa
Пользователь
 
Аватар для David Villa
 
Регистрация: 24.12.2011
Сообщений: 54
По умолчанию

Еще раз большое спасибо!
David Villa вне форума Ответить с цитированием
Старый 08.05.2012, 10:48   #20
rmv240899
Форумчанин
 
Регистрация: 18.02.2012
Сообщений: 155
По умолчанию

Сначала нужно объявить указатель на указатель на класс, потом выделить под него память. Тогда обращаться нужно через два индекса и через точку, а не селектор.
rmv240899 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив из классов DeMoHoJIoG Паскаль, Turbo Pascal, PascalABC.NET 2 12.03.2012 18:19
Сохранить массив классов в файл Casper-SC Общие вопросы .NET 42 21.03.2010 09:27
Передать массив базового абстрактного класса функциям производных классов mishutka999 Общие вопросы C/C++ 2 01.12.2009 14:08
Создание классов и использование объектов классов при написании программ в среде C++. Frozen inside Помощь студентам 0 16.04.2009 23:18
Массив классов nns2009 Общие вопросы C/C++ 15 03.02.2009 00:47