Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Вопрос к знатокам (ООП + ассемблер) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать функцию для вычисления суммы элементов квадратной матрицы, расположенных ниже главной диагонали http://www.cyberforum.ru/cpp-beginners/thread381971.html
Написать функцию для вычисления суммы элементов квадратной матрицы, расположенных ниже главной диагонали. С ее помощью найти максимальное значение такой суммы в n заданных матрицах.
C++ Должен рисоватся график Вот тут вот где ошибка? И потом ещё нужно, чтобы рисовалась в этой проге синусойда, косинусойда, вот написал одну, а ошибка где не знаю #include<windows.h> #include<string.h> #include<stdio.h>... http://www.cyberforum.ru/cpp-beginners/thread381969.html
C++ нахождение точек попавших в заштрихованную область
Добрый вечер!!! Не получается правильно записать условия, помогите пожалуйста. Постановка задачи: Для точек попаших в заштрихованную область вычислить значение функции Z и вывести на экран....
Русский язык в C++ C++
Как в C++ консоли подключить русский язык желательной setLoceta(Rus) такой функцией, у меня не получилось её использваоть
C++ Расстояние в дереве http://www.cyberforum.ru/cpp-beginners/thread381957.html
Есть определенная реализация функциональной части, как дополнить ее до полной работоспособности в соответствии с заданием? Задание: Дан неориентированный связный граф без циклов (дерево), на...
C++ Инвентирование порядка елементов в массиве Например дан массив a = {1, 2, 3, 4, 5} как сделать так, что бы элементы в нем располагались в обратном порядке? подробнее

Показать сообщение отдельно
Bers
Заблокирован
11.11.2011, 22:30  [ТС]
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
В общем, различия нребольшие есть (например в втором случае Do имеет два аргумента, а в других один), но они несущественны.
Интересует скорость доступа к объекту

Добавлено через 23 минуты
Если чисто логически рассуждать:

C++
1
2
3
4
5
6
7
struct SData { int m_a, m_b; };
 
class CTest:private SData
{
public:
 void Do()  {  std::cout<< "Test!\n";  std::cout<< m_a<<" "<<m_b<< "\n";    }
};
-Обращение к this объекта,
-Обращение к данным-членам this
Итого: Два уровня адресации.

C++
1
2
3
4
5
class CTest1
{
public: void Do()   { std::cout<< m_data.m_a<<" "<<m_data.m_b<< "\n";  }
protected: SData m_data;
};
-Обращение к this объекта
-Обращение к данному-члену m_data
-Обращение к данным
Итого: 3 уровня адресации.

C++
1
2
3
4
5
class CTest2
{
public: void Do(const SData* pTarget) const
        {  std::cout<< pTarget->m_a<<" "<<pTarget->m_b<< "\n";   }
};
- Обращение к this объекта
- Обращение к указателю
- Обращение к данным

Итого: 3 уровня адресации

C++
1
2
3
4
5
6
7
8
9
10
11
class CTest3
{ 
     SData* myTarget
public: 
      CTest3(const SData* pTarget): myTarget(pTarget){}
 
        void Do()
        { 
               std::cout<< myTarget->m_a<<" "<<myTarget->m_b<< "\n"; 
        }
};
- обращение к this
- обращение к указателю
- обращение к данным

итого 3 уровня адресации.


Предположение: Самый первый вариант - самый быстрый. 2 уровня адресации.
Остальные - однозначные
3
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru