Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> подскажите что плохого в этом проектировании 
:(
    Опции темы
MAKCim
Дата 8.11.2007, 00:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



погрешность в моем случае может быть связана с погрешностью получения данных times-ом
эти данные обновляются с частотой системного таймера
в Linux он установлен в 1мс
вычисляйте сами, если хотите, какая может быть погрешность 


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
UnrealMan
Дата 8.11.2007, 00:53 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 722
Регистрация: 30.3.2006

Репутация: 27
Всего: 32



Цитата(MAKCim @  8.11.2007,  00:31 Найти цитируемый пост)
какая погрешность?

И правда, какая погрешность. Система-то уравнений вообще не решаемая smile  archimed7592 сбил с толку smile

Цитата(MAKCim @  8.11.2007,  00:31 Найти цитируемый пост)
чтобы получить T1 и T2 мы от A1 и A2 должны отнять B

И это B нам не известно.

Нам нужно найти T1/T2. Итак, каковы твои действия?

Добавлено @ 00:58
Цитата(MAKCim @  8.11.2007,  00:31 Найти цитируемый пост)
то и одного опыта достаточно для того, чтобы опровергнуть или доказать гипотезу

Так ты ещё и один опыт произвёл smile Мегакруть ©

Это сообщение отредактировал(а) UnrealMan - 8.11.2007, 00:59
PM MAIL   Вверх
MAKCim
Дата 8.11.2007, 10:16 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



UnrealMan, 
Цитата(UnrealMan @  8.11.2007,  00:53 Найти цитируемый пост)
И это B нам не известно.
Нам нужно найти T1/T2. Итак, каковы твои действия?

B нам не нужно!!
T1 / T2 мы заменяем на A1 / A2
при B -> 00, если T1 < T2 ( => A1 < A2), результат неограниченно приближается к 1, но меньше ее
при T1 > T2 ( => A1 > A2) результат приближается к 1, но больше ее
при T1 = T2 ( => A1 = A2) результат 1
на основании одного опыта можно определить соотношение между A1 и A2
и на основании этого сделать вывод о соотношении между T1 и T2
конкретное соотношение не известно в силу неизвестности B, но относительный результат (который нам и нужен) мы получить можем
неужели не понятно?

Добавлено через 1 минуту и 45 секунд
archimed7592, 
вмешайся в спор
кто из нас (я и UnrealMan) тупит

Добавлено через 6 минут и 11 секунд
Цитата(UnrealMan @  8.11.2007,  00:53 Найти цитируемый пост)
Так ты ещё и один опыт произвёл smile Мегакруть ©

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


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Lazin
Дата 8.11.2007, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



Наверное проще разобраться как реализован RTTI на каком либо конкретном компиляторе, как компилятор производит upcast-ы и тд, и сравнить с велосипедом в виде виртуальной ф-ии, сравнением и тд.

PM MAIL Skype GTalk   Вверх
UnrealMan
Дата 8.11.2007, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 722
Регистрация: 30.3.2006

Репутация: 27
Всего: 32



Цитата(MAKCim @  8.11.2007,  10:16 Найти цитируемый пост)
конкретное соотношение не известно в силу неизвестности B, но относительный результат (который нам и нужен) мы получить можем
неужели не понятно?

Ну что я могу сказать? Во-первых, конкретное соотношение было бы интересно узнать. Во-вторых, T1-T2 ты можешь найти, не так ли? И сколько там получается? Время в миллисекундах? Ты всерьёз считаешь, что вот эта несчастная строчка кода вычисляется несколько миллисекунд? Что у тебя там за комп такой?
PM MAIL   Вверх
MAKCim
Дата 8.11.2007, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



Цитата(UnrealMan @  8.11.2007,  11:17 Найти цитируемый пост)
Во-вторых, T1-T2 ты можешь найти, не так ли? И сколько там получается? Время в миллисекундах?

сам считай, если хочешь
все данные я привел
Цитата(UnrealMan @  8.11.2007,  11:17 Найти цитируемый пост)
Ты всерьёз считаешь, что вот эта несчастная строчка кода вычисляется несколько миллисекунд? Что у тебя там за комп такой? 

 smile 
1. Ты, я так понял, с ассемблером не знаком, так что не делай таких выводов
банальная строчка кода на ЯВУ может разворачиваться в вызов довольно сложной библиотечной процедуры
(что и делается кстати)
2. Я склонен больше доверять стандартной программе, нежели велосипеду (не в обиду сказано)


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
UnrealMan
Дата 8.11.2007, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 722
Регистрация: 30.3.2006

Репутация: 27
Всего: 32



Мне этот форум нравится всё больше и больше smile Вопросов больше не имею.
PM MAIL   Вверх
MAKCim
Дата 8.11.2007, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



Цитата(UnrealMan @  8.11.2007,  13:30 Найти цитируемый пост)
Мне этот форум нравится всё больше и больше smile Вопросов больше не имею. 

т. е сказать больше нечего?  smile 
ради бога


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Vyacheslav
Дата 8.11.2007, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 9
Всего: 59



Цитата(SaDFromSpb @  7.11.2007,  11:45 Найти цитируемый пост)
Ну во-первых, потому что это когда-то говорил мудрый препод 

Вопрос в том, кто определил , что он мудрый smile.  Поэтому, "во-первых" в расчет не принимаем

Цитата(SaDFromSpb @  7.11.2007,  11:45 Найти цитируемый пост)

  , во-вторых, использование dynamic_cast'а свидетельствует о том, что мы пользуемся какой-то дополнительной функциональностью (RTTI, которую кстати, опциями компилятора можно отключить), чтобы получить истинный (ну или просто более "нижний") интерфейс объекта

А что в стандарте где есть фразы, дискриминирующие  dynamic_cast?
Вообщем то исходя из этого, можно например отказаться от ООП вообще. Нафига нам эта приблуда торомозная. Ограничимся только процедурным программированием. 
Мое мнение, что "во-вторых" тоже выглядит неубедительно. 

Цитата(SaDFromSpb @  7.11.2007,  11:45 Найти цитируемый пост)

. Оправданно ли это? Динамик кастом можно пользоваться двумя способами: 1) Приведение, когда ты точно знаешь, какой это класс на самом деле. Но если ты это знаешь, то наверное можно провести такую реорганизацию, чтобы динамик каст не понадобился. 

Дело в том, что если заранее известен класс, то dynamic_cast тут вообще не нужен. Вполне можно обойтись static_cast  .  Так что никакой реорганизации для того, чтобы избавиться от dynamic_cast не понадобится. 


Цитата(SaDFromSpb @  7.11.2007,  11:45 Найти цитируемый пост)

2) Попытка приведения по очереди к нескольким подкласам с отлавливанием ошибок при неправильном приведении (сам так ни разу не пробовал, но вроде можно). - Для С++ это как-то "грязно" =).

То есть исключения для Вас обязательно что-то исключительное? Пусть так. 
Нут так н делайте преобразование без возможной генерации исключений: ограничтесь преобразованием указателей.

Цитата(SaDFromSpb @  7.11.2007,  11:45 Найти цитируемый пост)

 Получается в некоторых местах теряется информация о типах, когда она должна быть. Почему должна? Потому что при хорошем проектировании интерфейс всегда достаточен для контекста в котором он используется, и когда получается наоборот - это, возможно, сигнал о том, что проектирование неудачано...
Как-то так.... 

Смысл этой фразы я не понял :(.
 Но в общем могу сказать, но накладываемые Вами ограничения приводят к  печальному результату: при практическом( не демонстрационном  ) использовании полиморфизма придется 
1)либо перенасыщать интерфейс базового класса( применительно  к к данному  примеру вынести GetTime в базовый класс ), 
2)либо создавать свой механизм опознования ( хотябы с использованием typeid, что кстати не всегда удобно или применимо ) с последующим использованием static_cast, 
3) либо просто отказаться от полиморфизма, потому как обычно в реальных  программах  одной работой со  объектами производных классов  как с базовыми  дело не заканчитвается и рано или поздно от работы с базовым объектом приходится переходить к работе с конкретным объектом конкретного класса. 



--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
archimed7592
Дата 8.11.2007, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Цитата(Vyacheslav @  8.11.2007,  20:11 Найти цитируемый пост)
А что в стандарте где есть фразы, дискриминирующие  dynamic_cast?

Не всё, что можно написать в программе будет хорошим ходом с точки зрения проектирования. Стандарт по языку, а не по проектированию.


Цитата(Vyacheslav @  8.11.2007,  20:11 Найти цитируемый пост)
2)либо создавать свой механизм опознования ( хотябы с использованием typeid, что кстати не всегда удобно или применимо ) с последующим использованием static_cast, 

typeid + static_cast == dynamic_cast.




--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
UnrealMan
Дата 8.11.2007, 23:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 722
Регистрация: 30.3.2006

Репутация: 27
Всего: 32



Цитата(archimed7592 @  8.11.2007,  20:27 Найти цитируемый пост)
typeid + static_cast == dynamic_cast

В общем случае это совсем не одно и то же.
PM MAIL   Вверх
Vyacheslav
Дата 9.11.2007, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 9
Всего: 59



Цитата(archimed7592 @  8.11.2007,  20:27 Найти цитируемый пост)
typeid + static_cast == dynamic_cast.

В общем то да, но я не часто пользовался typeid и поэтому вопрос: как решить задачу, когда надо преобразовать к не к реальному классу, а к некоемому базовому
A -> B 
   -> C
   -> D ->E
           ->J
          ->H->K
                ->...
 .            
 

Ну и  постановка:  имеется контейнер( дерево),   для  объектов A ( указателей, естественно).  Для всех объектов, которые могут представлены  как объекты класса D выполнить определенную операцию. То есть практически реализовать паттерн Visitor.





--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
archimed7592
Дата 9.11.2007, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Цитата(UnrealMan @  8.11.2007,  23:24 Найти цитируемый пост)
В общем случае это совсем не одно и то же. 

В чём разница? 0_о


Цитата(Vyacheslav @  9.11.2007,  09:59 Найти цитируемый пост)
а к некоемому базовому

Для преобразований к базовому касты не нужны вовсе...


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Lazin
Дата 9.11.2007, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



Без dynamic_cast нельзя привести указатель от базового класса к потомку при виртуальном наследовании, так как адрес не может быть вычислен во время компиляции, в остальных случаях можно.

PM MAIL Skype GTalk   Вверх
Fazil6
Дата 9.11.2007, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 35
Всего: 60



Цитата(Lazin @  9.11.2007,  12:00 Найти цитируемый пост)
 в остальных случаях можно.

можно, тока работать будет неправильно smile 
Код

#include <iostream>
struct A
{
    A()
    {
        std::cout << "A constructor\n";
    }
    virtual ~A(){}
};

struct B: public A
{
    B() : x(6), y(4)
    {
        std::cout << "B constructor\n";
    }

    virtual ~B(){}

    
    int y;
    int x;
    void f() {std::cout << x;}
};

struct C : public A
{
    C() : x(1)
    {
        std::cout << "C constructor\n";
    }

    void f1() {std::cout << x;}

    int x;
};

int main()
{
    C c;
    B b;

    C *pc = &c;
    B *pb = &b;

    A *pa1 = pc;
    A *pa2 = pb;

    B *pb2 = (B*)pa1;
    B *pb3 = (B*)pa2;
    
    pb2->f();
    std::cout <<  "\n" ;
    pb3->f();
    std::cout <<  "\n" ;

    return 0;
}

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0662 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.