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

Массивы указателей в классе. - C++

Восстановить пароль Регистрация
 
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
06.11.2011, 22:57     Массивы указателей в классе. #1
Приветствую. Подскажите пожалуйста, как объявить и инициализировать массив указателей в классе.
Пишу например вот так
C++
1
bool (*arrHand[ 6 ]) ( const int [ dealSize ][ dealSize ] ) = { straightOnHand, };
Имя функции подчеркивается красной волнистой линией в 2010 студии с ошибкой: значение типа "bool (DeckOfCards::*) ( const int (*arr)[5U] )" нельзя использовать для инициализации сущности типа "bool (*) ( const int (*)[5U] )".
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Bers
Заблокирован
06.11.2011, 23:07     Массивы указателей в классе. #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
 
   class CTest
    {
    public: CTest() 
            { 
                /*здесь идет настройка уже созданного массива*/ 
                memset(myTest, 0, sizeof(myTest) );
            }
        int* myTest[10][10];
    };
 
 
    CTest te;
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
06.11.2011, 23:20  [ТС]     Массивы указателей в классе. #3
Все равно подчеркивается красной линией с той же ошибкой, и соответственно не компилируется.

Добавлено через 8 минут
Ой извиняюсь, забыл совсем, вылетело из головы, массив указателей на функции.
Bers
Заблокирован
06.11.2011, 23:32     Массивы указателей в классе. #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
   
 class CTest
    {
        //объявим, что ptrFunc - это указатель на функцию
        typedef void (*ptrFunc)(); 
    public: CTest() 
            { 
                /*здесь идет настройка уже созданного массива*/ 
                memset(myArray, 0, sizeof(myArray) );
            }
            ptrFunc myArray[10]; //объявим массив из десяти указателей на функцию
    };
 
 
    CTest te;
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
06.11.2011, 23:39  [ТС]     Массивы указателей в классе. #5
Ясно, спасибо, видать рано еще мне до этого. Просто в книги массив указателей на функции объявлялся так как выше написал, но это было в main а не в классе. Думал в классах так же.
Bers
Заблокирован
06.11.2011, 23:49     Массивы указателей в классе. #6
можно и так записать:

C++
1
2
3
4
5
6
7
8
9
class CTest
    {
    public: CTest() 
            { 
                /*здесь идет настройка уже созданного массива*/ 
                memset(myArray, 0, sizeof(myArray) );
            }
            void (*myArray[10])() ; //объявим массив из десяти указателей на функцию
    };
Но вариант с typedef намного приятнее и легче читается.
А вообще, вы конечно правильно делаете, что учите эту муштру. Но по жизни старайтесь не использовать указатели на функции. Вместо этого в с++ есть другие более простые и элегантные способы, как сделать тоже самое, только проще и эффективнее.
Yandex
Объявления
06.11.2011, 23:49     Массивы указателей в классе.
Ответ Создать тему
Опции темы

Текущее время: 09:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru