Теория и практика masm32 под windows 7.

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить
Говорящий с текстолитом
Сообщения: 1658
Зарегистрирован: Вс дек 11, 2011 05:25:04
Откуда: Киев, Украина

Сообщение Tolmi »

По моему тема достаточно сильно отклонилась от masm32, чтобы её начать считать закрытой ;)

PS Запятая там правильно, в полном соответствии с синтаксисом языка.
In theory, theory and practice are the same. In practice, they're not.
Контактная информация:
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 132
Зарегистрирован: Вс сен 23, 2012 05:51:35

Сообщение black_lizard »

class TANK
{
public:
char Tanks[64];
int number;
}
TANK, tank[10];
Может всё-таки так:

Код: Выделить всё

class TANK{
          public:
                 char Tanks[64];
                 int number;
};
TANK tank[10]; 
Объявление класса заканчивается точной с запятой
Собираю самопальный мини-компьютер
Реклама
Потрогал лапой паяльник
Сообщения: 345
Зарегистрирован: Пт авг 24, 2012 09:45:40
Откуда: Абакан, Хакасия

Сообщение АндрейАвербах »

Tolmi, да я уже думаю ее переименовать, только не знаю как это делается...
black_lizard, да по невнимательности я пропустил точку с запятой теперь все работает.
Потрогал лапой паяльник
Сообщения: 345
Зарегистрирован: Пт авг 24, 2012 09:45:40
Откуда: Абакан, Хакасия

Сообщение АндрейАвербах »

Написал следующий код

Код: Выделить всё

#include <stdio.h>
#include <iostream.h>
class sta
{
     public:
            sta(int nNum, int nNum2 )
            {
                  cout<< "Konstructor\n";
                  num = nNum;
                  
                  num2++;
                  cout << num << "\n";
                  cout << num2 << "\n";
                   }
                   sta(sta &s)
                   {
                             num = s.num;
                             
                             cout << "Konstructor copy\n";
                             cout << num << "\n";
                             cout << num2 << "\n";
                             }
            ~sta()
            {
                   cout << "Destructor\n";
                   }       
             static int num2 ;       
     protected:
               int num; 
              
};

int main(int argc, char argv[])
{
    sta::num2 = 0;
    sta st(1, 12);
    sta s(st); 
    system ("PAUSE");
    return 0;
} 
Компилятор ругается на статическую переменную в классе, пишет LinkerError. Что не так?
Реклама
Эиком - электронные компоненты и радиодетали
Говорящий с текстолитом
Сообщения: 1658
Зарегистрирован: Вс дек 11, 2011 05:25:04
Откуда: Киев, Украина

Сообщение Tolmi »

Гуглить по словам Static Data Members
Вкратце: статические переменные должны объявляться вне класса, поскольку это отдельные объекты. Можно объявить их в контексте класса, но это будет одна переменная на все объекты этого класса
In theory, theory and practice are the same. In practice, they're not.
Контактная информация:
Реклама
Мучитель микросхем
Сообщения: 447
Зарегистрирован: Ср сен 26, 2012 14:12:47
Откуда: Київ

Сообщение Cheba »

А может с этим уже в эту тему?
Реклама
Ответить

Вернуться в «Интеграция с ПК»