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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
mas
0 / 0 / 0
Регистрация: 14.04.2009
Сообщений: 5
#1

Ссылка на структуру внутри класса - C++

14.04.2009, 12:24. Просмотров 845. Ответов 3
Метки нет (Все метки)

Программлю на с++ второй день

нужно определить указатель на структуру и проинициализировать указатель. Код вот:
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
typedef volatile unsigned int AT91_REG;// Hardware register definition
 
#define AT91C_BASE_PWMC  ((AT91PS_PWMC)     0xFFFCC000) // (PWMC) Base Address
// *****************************************************************************
//              SOFTWARE API DEFINITION  FOR PWMC Channel Interface
// *****************************************************************************
struct AT91_PWMC_CH_CMR 
{
  unsigned int Reserved0: 16;
  unsigned int Reserved1: 5;
  bool CPD: 1;
  bool CPOL: 1;
  bool CALG: 1;
  unsigned int Reserved2: 4;
  unsigned int CPRE: 4;
};
 
struct AT91S_PWMC_CH {
    AT91_PWMC_CH_CMR     PWMC_CMR;  // Channel Mode Register
    AT91_REG     PWMC_CDTYR;    // Channel Duty Cycle Register
    AT91_REG     PWMC_CPRDR;    // Channel Period Register
    AT91_REG     PWMC_CCNTR;    // Channel Counter Register
    AT91_REG     PWMC_CUPDR;    // Channel Update Register
    AT91_REG     PWMC_Reserved[3];  // Reserved
};
 
// *****************************************************************************
//              SOFTWARE API DEFINITION  FOR Pulse Width Modulation Controller Interface
// *****************************************************************************
struct AT91S_PWMC {
    AT91_REG     PWMC_MR;   // PWMC Mode Register Read/Write
    AT91_REG     PWMC_ENA;  // PWMC Enable Register Write-only
    AT91_REG     PWMC_DIS;  // PWMC Disable Register Write-only
    AT91_REG     PWMC_SR;   // PWMC Status Register Read-only
    AT91_REG     PWMC_IER;  // PWMC Interrupt Enable Register Write-only
    AT91_REG     PWMC_IDR;  // PWMC Interrupt Disable Register Write-only
    AT91_REG     PWMC_IMR;  // PWMC Interrupt Mask Register Read-only
    AT91_REG     PWMC_ISR;  // PWMC Interrupt Status Register Read-only
    AT91_REG     Reserved0[120];    // 
    AT91S_PWMC_CH    PWMC_CH[4];    // PWMC Channel
};
 
 
 
 
class TSAM7S256_PWM_user_interface {
  private:
    AT91S_PWMC *pPWM;      
    TSAM7S256_PWM_user_interface()
    {
      pPWM = AT91C_BASE_PWMC;   <================ОШИБКА здесь
      pPWM->PWMC_CH[0].PWMC_CMR.CPOL = true;                             
    }   
};
компилятор ругается:
In constructor 'TSAM7S256_PWM_user_interface::TSAM7S256_PWM_user_interface()':
'AT91PS_PWMC' was not declared in this scope
expected `)' before numeric constant

Как избавиться?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2009, 12:24     Ссылка на структуру внутри класса
Посмотрите здесь:

Компилятор не видит структуру внутри класса - C++
#pragma once #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;cstdlib&gt; #include &lt;locale&gt; #include &lt;stdexcept&gt; class Sequences ...

Нестатическая ссылка в статичной (BOOL CALLBACK EnumWindowsProc) функции внутри класса - C++
Здравствуйте форумчане приступлю сразу к сути. В чем сущность алгоритма: Нужно собрать RECT всех отображаемых окон и записать в...

Структуру переделать в класс, чтобы массив был внутри класса - C++
есть структура struct CUSTOMER { unsigned short number; char name; char tel; ...

Ссылка на структуру - C++
Рассматривал пример из книги Праты. Раздел про ссылки на структуры. В книжке был приведён пример, код примера можно увидеть ниже. У меня...

Не работает ссылка на структуру - C++
Написать программу, выполняющую следующие действия: -ввод с клавиатуры данных в массив, состоящий из десяти структур типа WORKER; ...

Ссылка на структуру с ссылками - C++
Не знаю в чем сложность, но неожиданно проблема Идея такова: есть структура vertex с координатами (ссылки) В дальнейшем появляется...

Заполнение вектора класса внутри самого класса - C++
class A { private: int a; public: A() { a = 0; }; A get(vector &lt;A&gt;* vec)

delete внутри класса для самого класса - C++
Доброго времени суток, пишу программу для работы с матрицами. По условию дали лишь несколько библиотек, ни векторов ни cstdio. Для...

Видимость экземпляра класса внутри класса - C++
Здравствуйте! Пытаюсь вывести openCV видео в QT виджете. На данный момент в слоте обновления картинки инициализирую класс cv::VideoCapture...

Объявление дружественного класса внутри класса - C++
class A{ friend class B{ B(A &amp;a); } } Подскажите пожалуйста, такое возможно или нет, я хотел чтобы...

Методы класса внутри определения класса - C++
Все привет! Решил закрепить свои знания по C++, читаю Р.Лафоре - &quot;Объектро-ориентированное программирование в C++&quot;. В книге, на...

Объявить указатель на структуру внутри структуры - C++
Объявить указатель на структуру внутри структуры. Добавлено через 5 часов 24 минуты Просто отрывок кода.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
darkAngel
Технофашист
214 / 195 / 4
Регистрация: 11.03.2009
Сообщений: 860
14.04.2009, 12:48     Ссылка на структуру внутри класса #2
C++
1
pPWM = AT91C_BASE_PWMC; <================ОШИБКА здесь
Указателю надо передать адресс объекта AT91C_BASE_PWMC (я надеюсь это именно объект, а не пользовательский тип).
Для этого нужно прибегнуть к помощи оператора & - передача адреса
C++
1
pPWM = &AT91C_BASE_PWMC;
Monte-Cristo
2788 / 1374 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
14.04.2009, 12:54     Ссылка на структуру внутри класса #3
попробуйте так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class TSAM7S256_PWM_user_interface 
{
  private:
    AT91S_PWMC *pPWM; 
    
  public:
  TSAM7S256_PWM_user_interface()
  {
    pPWM = new AT91C_BASE_PWMC;
    pPWM->PWMC_CH[0].PWMC_CMR.CPOL = true; 
  }
  ~TSAM7S256_PWM_user_interface()
  {
    delete pPWM;
  }
};
Humanitis
172 / 164 / 6
Регистрация: 12.01.2009
Сообщений: 430
14.04.2009, 13:00     Ссылка на структуру внутри класса #4
#define AT91C_BASE_PWMC ((AT91PS_PWMC*) 0xFFFCC000) // (PWMC) Base Address указатель должен быть
Yandex
Объявления
14.04.2009, 13:00     Ссылка на структуру внутри класса
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru