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

 
 
> как правильно вызывать конструктор в IAR C++
Jurdens
сообщение Oct 5 2005, 05:33
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 107
Регистрация: 9-07-05
Пользователь №: 6 656



Где располагать
Я делаю так

В файле MyClass.hpp описываю новый тип

В основной программе
#include MyClass.hpp // подкличаю описание
MyClass MyObj1; // сдесь как я понял вызывается конструктор
// до мейна правильно или нет?

main
{
MyObj1.Set(0x12);
.......

}
И есть еще файл MyClass.сpp
в котором описываю методы обьекта

Еще интересно что будет если компилятору
дать указание расположить объект во внешней памяти - ОЗУ?
Куда разместятся функции объекта(методы)?
или там только указатели?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Nikola Kirov
сообщение Oct 5 2005, 11:20
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 256
Регистрация: 4-11-04
Из: Болгария
Пользователь №: 1 050



class __near MyClass
{
public:
MyClass(char in1,char in2)
{
Var1 = in1;
Var2 = in2;
}
char Var1;
char Var2;
void Funct();
};


обект создаем
MyClass MyClas1(1,2);

__near указъивает разположит обект в near
Там в декларации можно указат куда будут разполагатся обектъи етого класа,если нужно поставит в еепром -> __eeprom

Если хочем поставит обект етого класа на заданнъи адресс
#pragma location=0x200
__no_init MyClass MyClas1(1,2);

если не обявит ето как __no_init компилятор сообщает
Error[Be012]: location address not allowed (object must have static storage duration and be const or __no_init)

А собствено если хочем что компилятор поставил обект в внешнеи памяти или в определеное адресное пространство нада сделат сегмент
-Z(DATA)MYSEGMENT=100-25F

и обявит обект так
#pragma location="MYSEGMENT"
__no_init MyClass MyClas1(1,2);

Кажется понятно обяснил с моим плохии рускии smile.gif
Go to the top of the page
 
+Quote Post



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

 


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


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