Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как обойти ISO? в class? ISO C++ forbids initializ 
:(
    Опции темы
DragoonFighter
Дата 18.5.2009, 20:59 (ссылка)   | (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 16.7.2007
Где: Access denied

Репутация: нет
Всего: нет



Здравствуйте уважаемые программисты. 

У меня такой вопрос? Можно ли обойти ISO правила и задать в классе под public: значение int? Если да, то как? Если нет то как можно переписать class чтобы задать значение. Нужно вот какой результат:

Код

class Sam {
    public:
        // sam
        int x1 = 10;
        int y2 = 419 - 10;
        // go_sam
        int xx = 0;
        int yy = 0;
        char c;
        // void
        void sam(char go, int x, int y) {
            switch (go){                
                case 'd':
                if(getpixel(x1+x+10, y2+y+10) == 4) {}
                else if(getpixel(x1+x+10, y2+y+10) != 4) {
                    q(x1+x, y2+y, (x1+x)+10, (y2+y)+10, 9);
                liney(x1+x-1, y2+y, y2+y+10, 0);
            }
        }
        // ....
        void go_sam() {
            while(1) {                
                c = getch();
                if(c == 'd') {                    
                    if(getpixel(x1+x+10, y2+y+10) == 4) {}
                else if(getpixel(x1+x+10, y2+y+10) != 4) {                    
                    xx++;
                }            
            }
        sam(c, xx, yy);
    }
}
}
};


P.S.: Код не важен это просто пример, важно то что под public.

--------------------
Зрелость личности - это не когда человек хочет умереть ради кого-то, а когда он хочет жить ради кого-то.
PM MAIL WWW ICQ Skype YIM MSN   Вверх
NightmareZ
Дата 18.5.2009, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


[хакер]
**


Профиль
Группа: Участник
Сообщений: 699
Регистрация: 10.8.2006

Репутация: 0
Всего: 13



А зачем?  smile 


--------------------
NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш
Ely-Art.ru - наша маленькая домашняя арт-студия
mugcraft.ru - кружки на любой вкус
PM WWW ICQ Skype GTalk AOL YIM   Вверх
andrew_121
Дата 18.5.2009, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



Цитата(DragoonFighter @  18.5.2009,  20:59 Найти цитируемый пост)
значение int? Если да, то как?

Определить можно. Но инициализировать можно только в конструкторе класса.
Код

class some {
public:
   some():val(0) {}
   ...
   int val;
};




--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
zim22
Дата 18.5.2009, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(andrew_121 @  18.5.2009,  21:19 Найти цитируемый пост)
Но инициализировать можно только в конструкторе класса

не только.
Код

class C {
  static const int size = 10;
};


кстати, если создавать объект класса в глобальной области видимости, то его POD-члены будут инициализированы так, если бы они были определены вне класса, т.е. значением по умолчанию (нулём).
Код

struct X {
int val;
};
X x;
int main() {
  int res = x.val; // res == 0
}


Это сообщение отредактировал(а) zim22 - 18.5.2009, 21:38


--------------------
PM MAIL   Вверх
DragoonFighter
Дата 18.5.2009, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 16.7.2007
Где: Access denied

Репутация: нет
Всего: нет



Ладно, благодарю! 
--------------------
Зрелость личности - это не когда человек хочет умереть ради кого-то, а когда он хочет жить ради кого-то.
PM MAIL WWW ICQ Skype YIM MSN   Вверх
mes
Дата 18.5.2009, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(DragoonFighter @  18.5.2009,  19:59 Найти цитируемый пост)
: Код не важен это просто пример, важно то что под public.

а почему в этом приведем примере столько мути ?! нельзя ли разве суть было выделить ?
неужто самим было бы приятно копаться в этой куче ... ?!

вот Вам два варианта, с учетом того как я понял Ваш вопрос:

Код

struct Sam1 {
       enum  { eX1 = 10,
               eY2 = 419 - 10
             };
        void sam(int x, int y) { line (eX1+x-1, eY2+y, 0, eY2+y+10); }
};

Код


struct Sam2 {
       static const int X1 = 10;
       static const int Y2 = 419 - 10;

       void sam(int x, int y) { line (X1+x-1, Y2+y, 0, Y2+y+10); }
};




Это сообщение отредактировал(а) mes - 18.5.2009, 21:39


--------------------
PM MAIL WWW   Вверх
andrew_121
Дата 18.5.2009, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



Цитата(zim22 @  18.5.2009,  21:31 Найти цитируемый пост)
static const int size = 10;

Гы... Верно.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0770 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.