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

Таинственный тип void - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Затирание изображения. http://www.cyberforum.ru/cpp-beginners/thread322433.html
Программа выводит текст из файла в графическом режиме,и осуществляет скроллинг при помощи клавиш WASD,подскажите как осуществить затирание предыдущей позиции строк,чтобы при перемещении строк...
C++ Создание игры и софта Скажите пожалуйста какие книги можете порекомендовать на с++ я хочу написать игру в шахматы для виндоус но не знаю с чего начать код то я писать начал а как реализовать к примеру доску фигурки кнопки... http://www.cyberforum.ru/cpp-beginners/thread322419.html
C++ Сумма и разность чисел, представленных в виде bitset
Доброго времени суток. Реализую блочный алгоритм шифрования, в котором необходимо наличие операций сложения и вычитания чисел разрядностью 16 бит, а так же взятие по модулю 2^16 от суммы/разности....
C++ ошибка в шифровании
Пытаюсь сделать шифрование через SLL, проблема в том, что если задавать строку для шифрования большую, то строка обрезается (маленькие строки нормально работают). Помогите разобраться что и где я...
C++ Экспоненциальная функция http://www.cyberforum.ru/cpp-beginners/thread322413.html
Добрый день, необходимо запрограммировать функцию 1-exp(-at) Основной вопрос как описать экспоненту ? Простенькие задачки без экспоненты разобрался как сделать, а вот когда добавляю exp в...
C++ не могу разобраться с typedef помогите разобраться typedef задает синоним типа только? например: typedef int myint; тут понятно все, вместо int можно писать myint а если написать подробнее

Показать сообщение отдельно
kravam
быдлокодер
1700 / 887 / 45
Регистрация: 04.06.2008
Сообщений: 5,494
19.06.2011, 13:19
xAtom,о чём речь? У ТС выделяется не три байта, выделяется массив из указателей на void, каждый имеет 4 байта размер (итого 12) и каждый инициализируется настолько грамотно, насколько позволяет работа с void*

Только у вас ещё до кучи конструируется указатель на массив из указателей на void. А у ТС этого нет, но у него всё равно указатель на массив указателей на void конструируется, пусть и неявно. Кстати, вот он:

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
#include <iostream>
 
using namespace std;
 
int main(){
        void * mas[3];
 
        mas[0] = new int(17);
        mas[1] = new char('q');
        mas[2] = new bool(true);
 
        cout << *((int *)mas[0]) << endl;
        cout << *((char *)mas[1]) << endl;
        cout << *((bool *)mas[2]) << endl;
 
        //Вот он        
        printf ("%x\n", mas);
        
        printf ("%x\n", mas[0]);
        printf ("%x\n", mas[1]);
        printf ("%x\n", mas[2]);
 
        getchar ();
        return 0;
 
}
И ошибку g++ выдаёт одну что на вашем коде что на тредстайтеровском. Так что у вас то же самое, только вид сбоку.

Добавлено через 15 минут
pontakrin, это чисто для познавания круто. на практике же вот:
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
#include <iostream>
 
using namespace std;
 
class A{
public:
        A(){ cout << "crated object A" << endl; }
        ~A(){ cout << "deleted object A" << endl; }
};
 
class B{
public:
        B(){ cout << "crated object B" << endl; }
        ~B(){ cout << "deleted object B" << endl; }
};
 
class C{
public:
        C(){ cout << "crated object C" << endl; }
        ~C(){ cout << "deleted object C" << endl; }
};
 
int main(){
 
        A a;
        B b;
        C c;
        getchar (); 
        return 0;
}
И не нужна лишняя сущность в виде массива указателей.

++++++++++++++++++++++++++++++++++++++++++++++++++=

Если же хочется использовать именно массив, то тут это уже моё сугубо лично мнение идёт, массив должен быть из каких-то однородных, что ли элементов. То есть оъекты A, B и С пусть будут объектами ОДНОГО класса. Но пусть в этом классе будет констуктор и соответственно A, B и С будут объектами одного класса, но сконструированными ПО-РАЗНОМУ. Так по-моему грамотно

В противном случае работаем с массивом указателей на объекты, которые ничё общего меж собой не имеют. Компилятор компилит, ну да. В общем, я бы над этим задумался дабы сразу приучиться к грамотному кодингу.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru