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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> использование переменных добавленного класса, переменные класса 
:(
    Опции темы
Golem
  Дата 12.6.2008, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Я совсем новичок в С++, не судите плохо
такая проблема. я добавил в маин.срр классы.
использую функции с этих классов, но мне также необходимы менят либо использовать в маин.срр значения с этого класса. Привожу отрезки кода
 ------- main.cpp--
Код

//    
#include "Sphere.h"
Sphere sphere;
void on_keyboard(unsigned char key, int x, int y) //обработка события от клавиатуры
{  
    switch (key) {
            case 13 :
            if (sphere.atbl[i][i]!=0){ /* вэтом месте выходит ошибка 
                                                                                          error C2108: subscript is not of integral type */
                shere.paint();
             }
            break;    

    } 
    on_paint();
}

в чем есть порблема. дело в том что переменных как atbl много и всех как праметр к функции я использовать немогу.

--- Sphere.h-----
Код


class Sphere
{
 
    
public:
int atbl[8][8];        


     Sphere();
     void paint();

};

---- Sphere.cpp---
Код

#include "Sphere.h"



Sphere::Sphere()
{
 atbl[1][0]=1;
atbl[3][0]=1;
atbl[5][0]=1;
atbl[7][0]=1;
    
                
}
void Sphere::paint()
{    
 for (int i=0; i<=7 ;i++){
    for (int j=0; j<=7 ;j++){
       // отображаем шар atbl[i][j]=}}

}



PM MAIL   Вверх
rrrFer
Дата 12.6.2008, 16:21 (ссылка)   | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Golem
в --- Sphere.h-----  int atbl[8][8];  надо-бы поместить в private:, иначе, в чем проблема?
Цитата

дело в том что переменных как atbl много и всех как праметр к функции я использовать немогу.

опиши эту функцию в классе, тогда ей не придется передавать массив в качестве параметра
PM MAIL WWW ICQ   Вверх
pan2004
Дата 12.6.2008, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Golem @  12.6.2008,  15:25 Найти цитируемый пост)
            if (sphere.atbl[i][i]!=0){ /* вэтом месте выходит ошибка                                                                                           error C2108: subscript is not of integral type */

А i что такое? Откуда эта переменная?
каких-то других причин приводящих к ошибке не вижу...


Цитата(Golem @  12.6.2008,  15:25 Найти цитируемый пост)
использую функции с этих классов, но мне также необходимы менят либо использовать в маин.срр значения с этого класса. Привожу отрезки кода

Если хочешь переместить переменные в классе в приват-секцию - не проблема: для доступа к ним пишутся функции типа
Код

int Sphere::getAtbl (unsigned int x, unsigned int y) const
{
  if (x <= 8 && y <= 8) // Здесь же желательно проверять на возможный выход за границы массива
     return atbl[x][y];
  // Вызываем exception или возвращаем "значение по умолчанию"
}




--------------------
Qt4/C++ fan
WinXP SP3: MSVC++2005 Qt4.5.1 Boost1.39
сыграем в дурака?
PM MAIL   Вверх
ReStarteR
Дата 11.3.2009, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



посмотри, у тебя i int? у мну было double, и тоже вылазила эта ошибка
PM MAIL   Вверх
Fazil6
Дата 12.3.2009, 11:57 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(ReStarteR @  11.3.2009,  21:23 Найти цитируемый пост)
посмотри, у тебя i int? у мну было double, и тоже вылазила эта ошибка 

наконец-то ты пришел!!!! Ребята тебя заждались... Ну теперь наконец сдвинется дело
PM MAIL   Вверх
Ezik
Дата 12.3.2009, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



pan2004, только  не
  
Код

if (x <= 8 && y <= 8) 

а 

  
Код

if (x < 8 && y < 8) 

 smile 

Это сообщение отредактировал(а) Ezik - 12.3.2009, 19:44
PM MAIL ICQ   Вверх
Helmet
Дата 12.3.2009, 23:52 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 27.2.2009
Где: Someone's hea d

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



Ezik, спасибо огромное тебе от pan2004. Я его недавно видел, он все еще мучается над этой проблемой. За 9 месяцев он додумался только до
Код

if (x < 8)

а что делать с y так и не решил. Спасибо тебе еще раз, ты спаситель!  smile 

Это сообщение отредактировал(а) Helmet - 12.3.2009, 23:52
PM   Вверх
Anikmar
Дата 13.3.2009, 01:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(Helmet @  12.3.2009,  23:52 Найти цитируемый пост)
. За 9 месяцев он додумался только до
код C++
1:
if (x < 8)


У менят за 9 месяцев жена родила  smile 

Тем не менее Ezik, +1
PM MAIL ICQ   Вверх
Ezik
Дата 13.3.2009, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



На самом деле, увидеть бы все исходники smile тогда бы я больше помог ) кидайте на мыло, если хотите [email protected]
PM MAIL ICQ   Вверх
Dmi3ev
Дата 13.3.2009, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



EzikReStarteR, ну вы и перцы))) повеселили))) 
Цитата

На самом деле, увидеть бы все исходники smile тогда бы я больше помог ) кидайте на мыло, если хотите [email protected] 

исходники удалили с компов((( 9 месяцев не могли ни к чему прийти... разозлились и удалили на днях... 
чуть-чуть бы пораньше вы бы зарегистрировались, тогда бы ваще было круто... ну и так  smile помогли  smile 

Это сообщение отредактировал(а) Dmi3ev - 13.3.2009, 16:27


--------------------

PM MAIL   Вверх
pan2004
Дата 13.3.2009, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Helmet @  12.3.2009,  23:52 Найти цитируемый пост)
Я его недавно видел, он все еще мучается над этой проблемой. За 9 месяцев он додумался только докод C++1:if (x < 8)highlightSyntax('cpp_E3ZTk5','cpp');а что делать с y так и не решил.

Лежал  smile  smile 


--------------------
Qt4/C++ fan
WinXP SP3: MSVC++2005 Qt4.5.1 Boost1.39
сыграем в дурака?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

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

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

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

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


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

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


 




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


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

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