Компьютерный форум NoWa.cc

Компьютерный форум NoWa.cc (https://nowa.cc/index.php)
-   Visual C++ / С/C++ (https://nowa.cc/forumdisplay.php?f=302)
-   -   структура TBM (https://nowa.cc/showthread.php?t=98749)

Falex 27.05.2007 20:17

структура TBM
 
например,какая "структура" в P3 и какие адреса там "сидят"? (я имею ввиду таблицу ТВМ)
Код:

class P1{
 //...;
  virtual void f(int i){
    cout << "virtual f1(int)" <<endl;
  }
  void f(){
    cout << "f1()" <<endl;
  }
};
class P2{
 //...;
  virtual void f(int i){
    cout << "virtual f2(int)" <<endl;
  }
  void f(){
    cout << "f2()" <<endl;
  }
}
class P3:public P1,public P2{
 //...;
  virtual void f(int i){
    cout << "virtual f3(int)" <<endl;
  }
  void f(){
    cout << "f3()" <<endl;
  }
};
void main()
{
  P1 a;
  P2 b;
  P3 c;
  P3 *p1=&a;
  P3 *p2=&b;
  P3 *p3=&c;
  p1->f(3);
  p2->f(2);
  p3->f(1);
  p1->f();
  p2->f();
  p3->f();
  //...
}

Читал у Страуструпа,но инфы не нашел.

lanedis 22.06.2007 21:18

Ответ: структура TBM
 
Тебе что именно не понятно, я тебя не понимаю :(
В P3 (или ты всё таки p3 имеешь ввиду), находится таблица виртуальных функций, а вообще, у Страуструпа этой информации и не должно быть, так как это компилятор-специфичная информация.

lynxy 12.07.2007 20:44

Ответ: структура TBM
 
Действительно, как именно реализована VT в разных компиляторах-разных-архитектурах и т.п. Страуструп не должен и не может знать. И в 99% случаев и программисту про это знать нет необходимости.


Текущее время: 12:01. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Copyright ©2004 - 2026 NoWa.cc

Время генерации страницы 0.01788 секунды с 9 запросами