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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2010, 19:05   #1
Kekcuk
 
Регистрация: 13.12.2010
Сообщений: 3
По умолчанию Структура и конструктор

Вечер добрый.
Подскажите пожалуйста.. имеется вот такая структура с конструктором
Код:
struct TNode {
   mv value;
   TNode* pnext;
   TNode(mv val): pnext(0), value(val) {}
};
как объявить..к примеру TNode1, без конструктора?
понимаю, что вопрос поражает своей гениальностью
Kekcuk вне форума Ответить с цитированием
Старый 20.12.2010, 19:21   #2
sinj
программирователь
Пользователь
 
Аватар для sinj
 
Регистрация: 15.02.2009
Сообщений: 72
По умолчанию

Добрый день! Если правильно понял вопрос, то никак. Конструктор будет в любом случае при создании данных некоторого типа, если конструктор не объявлен, то будет работать default-конструктор. Если вопрос понял не правильно, то уточните.
smile
sinj вне форума Ответить с цитированием
Старый 20.12.2010, 19:23   #3
Kekcuk
 
Регистрация: 13.12.2010
Сообщений: 3
По умолчанию

Спасибо за ответ.
Хотел узнать как объявить без
вот этой строчки в объявлении структуры
Код:
  TNode(mv val): pnext(0), value(val) {}
Kekcuk вне форума Ответить с цитированием
Старый 20.12.2010, 19:42   #4
sinj
программирователь
Пользователь
 
Аватар для sinj
 
Регистрация: 15.02.2009
Сообщений: 72
По умолчанию

Вопрос не понял. ЗДЕСЬ неплохо написано про конструкторы. Уверен, должно помочь разобраться...
smile
sinj вне форума Ответить с цитированием
Старый 21.12.2010, 02:57   #5
UltimaBeaR
Форумчанин
 
Аватар для UltimaBeaR
 
Регистрация: 21.12.2010
Сообщений: 199
По умолчанию

Ответ настолько же гениален как и вопрос: не пиши эту строку

Пояснил хотябы что ты хочешь от структуры без конструктора и зачем тебе ее объявлять без конструктора. если ты не объявишь конструктор то у тебя будет все то же самое, только переменные не 0 и val будут равны при создании объекта а тому что там в памяти было (мусор). А вобще как уже сказали, дефолтный конструктор все равно создается если ты его явно не пишешь..он будет такого вида TNode(){}

Последний раз редактировалось UltimaBeaR; 21.12.2010 в 02:59.
UltimaBeaR вне форума Ответить с цитированием
Старый 21.12.2010, 06:34   #6
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Как я понимаю, ситуация из серии "а сколько будет 4+7? - не знаю, мы до одиннадцати еще не учили". Структуры уже проходили, а классы еще нет. Соответственно, делает вид, что про существование конструкторов для структур мы еще не знаем. С точки зрения языка C++ подход бредовый, но с точки зрения образования - вполне стандартный (использование структур в Си-подобном стиле).
В общем, как делать, вам уже сказали - просто не пишите строчку с конструктором. Конструктор по умолчанию, конечно, все равно неявно будет создан, но мы сделаем вид, что ни о чем не знаем. А потом просто будете создавать новые узлы и вручную заполнять их поля, допаивая в next соответствующих старых узлов указатели на новые.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 21.12.2010, 15:33   #7
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Можно запретить конструктор по-умолчанию так:
Код:
struct type
{
     ...
private:
     type();
}
Правда тогда объект класса (структуры) вообще нельзя будет создать.
Вряд ли, конечно, это надо ТС, это я так, к слову.
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 21.12.2010, 16:54   #8
UltimaBeaR
Форумчанин
 
Аватар для UltimaBeaR
 
Регистрация: 21.12.2010
Сообщений: 199
По умолчанию

через друга класса можно) но конструктор то всеравно есть причем явно определенный
UltimaBeaR вне форума Ответить с цитированием
Старый 22.12.2010, 00:12   #9
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Я не говорил что его нет, я сказал что так его можно запретить
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
конструктор _ILYA_ Visual C++ 2 14.10.2010 01:38
С++ (конструктор, деструктор, копирующий конструктор) Jane-sad Помощь студентам 2 01.10.2010 10:01
Конструктор Farrel Общие вопросы C/C++ 1 30.09.2010 01:18
конструктор An123 Помощь студентам 1 17.01.2010 17:14
Конструктор PilGrim Общие вопросы C/C++ 0 16.01.2009 10:21