реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Объявление объекта класса KEIL C++
marcinio
сообщение Aug 20 2008, 16:27
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 42
Регистрация: 3-07-07
Пользователь №: 28 861



Надо написать одну программу для AT91SAM7S64 в KEIL (C++), но вот запутался. Мне надо объявить объект класса TimeDelay, что делаю строчкой:
Код
TimeDelay *Delay = new TimeDelay;

Вопрос: где мне объявить TimeDelay объект, что-бы можно было его использовать и в Main.cpp, и в Interrupt.cpp? Очень прошу, подпишите эти строчки в коде ниже a14.gif

Вот примерный код:
Main.cpp
Код
#pragma once
#include "Interrupt.cpp"
#include "Delay.cpp"

int main (void)
{
    Тут будет использоватсья *Delay;
...
}

Delay.cpp
Код
#pragma once
#include "Interrupt.cpp"

class TimeDelay
{
    ...
};

Interrupt.cpp
Код
__irq void Interrupt()
{
    Тут будет использоватсья *Delay;
...
}
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Aug 20 2008, 17:12
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



1)Вам надо внимательно изучить в букваре по C главу, посвященную разбивке программы на модули. Файлы .cpp никогда (ну, почти никогда) не включаются в другие .cpp файлы.
2)Ваш объект будет уничтожаться в процессе работы программы? Я полагаю, что поскольку указатель на него используется в прерывании, объект будет жить вечно. Тогда зачем его создавать динамически (через new)?
Вот примерный код:
Main.cpp
Код
#include "Delay.h"

TimeDelay Delay;   // глобальный объект, память выделяется статически на этапе линковки, может быть определен в любом подходящем по смыслу .cpp
int main (void)
{
    Тут будет использоватсья Delay или *pDelay, если все же нужен указатель;
...
}

Delay.h
Код
#ifndef DELAY_H__
#define DELAY_H__
class TimeDelay
{
    ...
};

extern TimeDelay Delay;
static TimeDelay* const pDelay = &Delay;
#endif // DELAY_H__

Interrupt.cpp
Код
#include "Delay.h"
__irq void Interrupt()
{
    Тут будет использоватсья *Delay;
...
}


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Neural
сообщение Sep 10 2008, 17:11
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 10-11-05
Пользователь №: 10 655



Main.cpp
TimeDelay Delay;

Interrupt.cpp
external TimeDelay Delay;
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 12:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.01362 секунд с 7
ELECTRONIX ©2004-2016