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

Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Создать класс время с данными-членами часы, минуты, секунды http://www.cyberforum.ru/cpp-beginners/thread330022.html
отучилась на программиста уже год, но пока что как-то тяжко с заданиями, тем более с классами, не успели пройти их... помогите пожалуйста решить Создать класс время с данными-членами часы, минуты,...
C++ Как послать своё сообщение другому приложению? #define WM_MYMESSAGE 2000 void main() { HWND hWnd; hWnd = ::FindWindow(NULL,"MyApp"); ::SendMessage(hWnd,WM_MYMESSAGE,0,0); } http://www.cyberforum.ru/cpp-beginners/thread330016.html
C++ Класс "Студент", реализовать динамический список "Группа студентов"
реализовать динамический список " группа студентов". Узел: -группа -фамилия Функции списка: -добавление по алфавиту -удаление указанного -очистка списка -поиск студента -печать...
Связь указателей и одномерных массивов. Динамический одномерный массив C++
Ребят помогите написать программу.В пятницу срочно надо сдать! Требования и общие указания к заданиям: • разработать класс для работы с одним или несколькими одномер-ными динамическими массивами,...
C++ Чтение из файла, запись в файл http://www.cyberforum.ru/cpp-beginners/thread329979.html
Тут такая у меня проблема. 1) Не работает цикл в майне. Как его правильно организовать? 2) И, похоже, чтение из файла все-таки, неправильно организовано. 3) И оошшшень хотелось бы поиск в файле...
C++ двойная буферизация Здравствуйте. Ребят не сочтите за труд, помогите разобраться. Проблема собственно вот в чём: Пишу тетрис, в окошке находится стакан с фигурами, а на фоне нужно чтобы была некая картинка. Сначала... подробнее

Показать сообщение отдельно
kravam
быдлокодер
1703 / 890 / 45
Регистрация: 04.06.2008
Сообщений: 5,489
06.07.2011, 16:28  [ТС]
Короче так, друзья, вот что такое
C++
1
y.diagonal[0][0];
надеюсь тут всё понятно:
C++
1
2
3
4
matrix<int> y (6, 7);
 y.init_rand (1, 100);
y.vivod();
 y[3][4]= 99;
Названия говорят сами за себя.
Теперь: у каждой матрицы есть диагональ, и я хотел бы обращаться к элементам диагонали аналогично тому, как я обращаюсь к элементами матрицы A [stroka][stolbets]

Ну а теперь представьте что строки это диагонали. Например:

12 13 14 15
16 17 18 19
20 21 22 23

Вот матрица. В ней 6 диагоналей, вот они:
12
16 13
20 17 14
21 18 15
22 19
23

(Это, конечно, условность, они могут идти и справа налево и сверху вниз, но я решил так.)
Теперь я хочу обратиться к диагонали 3 элементу 2, я пишу
C++
1
cout<<y.diagonal[3][2];
Получаю 18. Всё просто до ужаса. (Если выход за пределы диагонали, то я вывожу соответствующее предупреждение)

Теперь главное реализовать вот это:
C++
1
y.diagonal[3][2]
////////////////////////////////////////////////////
...В наличии есть функция, а в ней формула которая преобразует ДИАГОНАЛЬНЫЕ координаты [2][3] в СТАНДАРТНЫЕ координаты [1][2], я её накропал сам
////////////////////////////////////////////////////

Собсно,размышляя сегодня на лоне природы о бренности всего земного, я пришёл к выводу, что я сию херь реализую без труда так:
C++
1
y.diagonal[B]([/B]3,2[B])[/B]
Но это не наш метод, как говорится.

И ещё: не хочется иметь два массива: собственно матрицу и массив диагоналей. Тогда, наверное, я используя перегрузку операторов [] всё-таки получу нужный мне элемент. Но! Тогда изменив элемент матрицы, например:
C++
1
y[3][4]= 99;
Я должен буду позаботиться и об изменении другого элемента- элемента вектора в массиве векторов (диагональ это у меня вектор). А это тоже не наш метод. Лучше иметь один массив и с ним работать так
C++
1
y[3][4]= 99;
и так:
C++
1
y.diagonal[3][2]
Потом я отпишусь по пунктам ещё.

Добавлено через 10 минут
Ребята, я наперепутывал всё с координатами, извиняюсь. Короче диагонали считаются с левого верхнего угла (нулевая диагональ) и пошли вниз до правого нижнего угла, а элементы диагоналей считаются слева направо и соответственно снизу вверх
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.