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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.12.2012, 02:48   #11
Perchik71
С++, Delphi
Форумчанин
 
Аватар для Perchik71
 
Регистрация: 24.11.2012
Сообщений: 495
По умолчанию

Цитата:
Сообщение от ACE Valery Посмотреть сообщение
Нашла!
__super
работает только в компиляторе VS, судя по отзывам.
чёт я такого не помню... в какой студии хоть работает? в 2012
//----
пример в мсдн нашёл

Код:
// deriv_super.cpp
// compile with: /c
struct B1 {
   void mf(int) {}
};

struct B2 {
   void mf(short) {}

   void mf(char) {}
};

struct D : B1, B2 {
   void mf(short) {
      __super::mf(1);   // Calls B1::mf(int)
      __super::mf('s');   // Calls B2::mf(char)
   }
};
Если помог, тут весы есть , Вам не сложно, а мне приятно.
Perchik71 вне форума Ответить с цитированием
Старый 31.12.2012, 02:58   #12
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

у меня в 2010 Экспресс
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 31.12.2012, 11:15   #13
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

А что будет делать __super когда наследуем более от одного родителя?
Чем плохо прописывать <BaseClassName>::<BaseClassMethod > ?
waleri вне форума Ответить с цитированием
Старый 31.12.2012, 15:25   #14
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Цитата:
А что будет делать __super когда наследуем более от одного родителя?
компилятор скажет, что "неоднозначный вызов перегруженной функции" (если такая функция c такой же сигнатурой есть у обоих родителей) в случае, если есть и "мама", и "мама2", и "мамаN" и вызовет функцию ближайшего родителя, в случае наследования от одного родителя, но с "бабушками" и "прабабушками".

Цитата:
Чем плохо прописывать <BaseClassName>::<BaseClassMethod >
во-первых, тем, что надо знать название этого <BaseClassName>. И если оно вдруг поменяется, нужно заменять во всех местах. Во-вторых, тем, что мне нужен был именно __super.

Пользоваться им никого не заставляю. Все плюсы и минусы обсосаны уже в отзывах, на которые я давала ссылку, поэтому не вижу смысла дальше спорить, что лучше. Тем более, что ответов на свой вопрос я получила достаточно.

З.Ы. Ребят, если задали конкретный вопрос, то ждут конкретный ответ, а не философствования, что лучше, что хуже. А то вот мы все жалуемся, что студенты тупо кидают задачку для решения и ничего не спрашивают. А что тут спрашивать? Ведь закидают ценными советами, что тут не так, там не так. Научитесь различать, когда человек сомневается в правильности своего решения, и когда ему нужно конкретная вещь, даже если она в сто раз хуже способа, который вам известен. Как модератор советую.
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать

Последний раз редактировалось ACE Valery; 31.12.2012 в 15:29.
ACE Valery вне форума Ответить с цитированием
Старый 31.12.2012, 19:00   #15
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Вопрос был чисто реторическим - я знаю как ведет себя __super.
Я не любитель нестандартных решений, но явно это дело вкуса.
Я предпочитаю обращение по имени родителя, избгая всяких двусмысленностей...
Да и всегда можно сделать typedef <BaseClassName> parent;
waleri вне форума Ответить с цитированием
Старый 31.12.2012, 19:03   #16
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Цитата:
Сообщение от Perchik71 Посмотреть сообщение
в какой студии хоть работает?
Уже лет 10... гдето еще с самых первых .net студий.
waleri вне форума Ответить с цитированием
Старый 02.01.2013, 17:17   #17
Perchik71
С++, Delphi
Форумчанин
 
Аватар для Perchik71
 
Регистрация: 24.11.2012
Сообщений: 495
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Уже лет 10... где-то еще с самых первых .net студий.
если это так то я балерина в инете нашёл с 2006.. ну угадал вобщем чуток ошибся.
Если помог, тут весы есть , Вам не сложно, а мне приятно.
Perchik71 вне форума Ответить с цитированием
Старый 02.01.2013, 18:04   #18
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Цитата:
Сообщение от Perchik71 Посмотреть сообщение
если это так то я балерина в инете нашёл с 2006.. ну угадал вобщем чуток ошибся.
http://msdn.microsoft.com/en-us/libr...(v=vs.71).aspx
waleri вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перекрестное приведение к родственному классу в иерархии hick91 Общие вопросы C/C++ 5 25.12.2012 11:23
Как передать обьетк классу??? KoctR Общие вопросы C/C++ 11 25.03.2012 17:22
Как привязать функцию к классу? minamoto Общие вопросы Delphi 26 25.08.2011 16:08
Параметр классу? Непонятный с++. jojahti Общие вопросы C/C++ 4 16.10.2009 08:55
Обратиться к классу (Delphi) Air Помощь студентам 16 17.07.2008 19:51