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

Список указателей на авторские объекты, я могу воспользоваться только первым его элементом. Почему? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Приостановка выполнения процесса/потока (windows) http://www.cyberforum.ru/cpp-beginners/thread363211.html
Есть запущенный процесс, например, калькулятор или блокнот, известно ID процесса и его имя. Нужно сделать: на форме есть две кнопки, при нажатии первой выполнение процесса должно приостанавливаться, при нажатии второй - возобновляться. Я предполагаю, нужно приостанавливать основной поток процесса (Suspend и Resume), но как это сделать, зная ID и имя процесса? Или, может быть, есть другие...
C++ Уважаемые форумчане, помогите понять что требуется.. задали лабу по информатике.. что требуется?? просто я 0 в математике..помогите пожалуйста с кодом или разъясните пожалуйста http://www.cyberforum.ru/cpp-beginners/thread363210.html
Программа для вычисления Зарплаты C++
Всем доброго времени суток. Помогите доработать программу до более менее сносного вида. Суть такова. Программа должна посчитать ЗП, часовая оплата зависит от должности. Далее по количеству сделанного товара считается денежная оплата по каждому виду. В конце все суммируется и начинается по новой. Проблема с массивами. Нужно организовать такой массив famil, что бы с каждым новым циклом в...
написать программу подсчета нечетных чисел последовательности C++
нужно написать программу подсчета нечетных чисел последовательности, вводимой с клавиатуры, причем НЕ используя массив, а используя оператор sscanf буду очень благодарна 3.3 Запрещено создавать темы с бессмысленными названиями вроде "Помогите!", "Вопрос" и т.п.
C++ Раздельная компиляция файлов в проекте. Межмодульное взаимодействие http://www.cyberforum.ru/cpp-beginners/thread363198.html
Задан проект-модель почтового сервера Созданы файлы: интерфейс сервера: server.h, интерфейс клиента-client.h, реализации сервера-server.cpp, клиента-client.cpp. Клиентская часть client.cpp компилируется, серверная часть server.cpp не компилируется. При компиляции файла server.cpp, компилятор ругается на строки list<client> servеd; и list<client> notservеd;. Компилятор gcc++, ide-geany. ...
C++ Поменять местами два числа, не используя дополнительные ячейки памяти Когда вводишь два числа нужно что бы они поменялись местами, не используя при это дополнительные ячейки то есть всего 2 ячейки #include <iostream> using namespace std; int main() { int a,b; cin>>a>>b; Дальше вот тут вывести какую-то формулу; cout<<a<<b<<endl; return 0; подробнее

Показать сообщение отдельно
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
08.10.2011, 20:50     Список указателей на авторские объекты, я могу воспользоваться только первым его элементом. Почему?
Друзья! Короче создал ПРОСТОЙ класс всего с одним полем и функцией которая выводит значение этого поля. Создал массив из 2-х указателей на объекты такого класса. После корректно этот массив инициализировал.
А после на основе массива указателей создал список из указателей. И вот тут-то ничего не получатся.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <iostream>
#include <string>
#include <list>
using namespace std;
 
 
//Это вот будет описание типа; очень простое
class type {
 public:
  type (int);
  ~type () {};
 
 //Эта вот функция возвращает x
 int f () {return x;};
 
 private:
  int  x;
};
 
//ЭТо вот конструктор просто устанавливает x в нужное значение и всё
type::type (int nomer) {
 x= nomer;
};
 
 
 
int main() {
 
 //Кропаем список из 2-х указателей.
 type** p= new type* [2];
 
 
 //Теперь каждый указатель проинициализируем конкретным объектом типа type
 //То есть будут объекты со значениями 0 и 1
 for (int i= 0; i< 2; i++) {
  p[i]= new type (i);
 }
 
 //ПРоверим
 printf ("%d    \n", (*p[0]).f());
 printf ("%d    \n", (*p[1]).f());
 //Всё корректно
 
 //Теперь скропаем список из указателей
 list<type*> List (p, p + sizeof(p) / sizeof(type*));
 
 //И выведем значения, сперва так
 printf ("%x\n", (**List.begin()).f());
 
 //Ага, а теперь объявим итератор...
 list<type*>::iterator itr= List.begin();
 
 //проверим
 printf ("%x\n", (**itr).f());
 
 
 // и инкременируем его
 itr++;
 
 //Теперь по идее должна итератр должен указывать на адрес второго объекта
 //а ни фига подобного, выводится не единица, а вылетает исключение, почему?
 printf ("%d\n", (**itr).f());
 
 getchar ();
 return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru