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

 
 
> WinAVR, G++, template, linking, Помогите найти ошибку при применении template.
Igor_U
сообщение Jun 9 2006, 06:10
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 34
Регистрация: 2-10-05
Пользователь №: 9 141



Не понимаю. Где может быть ошибка при использовании template? Без использования template проект собирается нормально. Проект состоит из 3 фалов main.cpp - откуда вызываю функцию Func, clMy.h - где объявляю класс clMy, и clMy.cpp - где описана реализация функции Func. Вот как это выглядит:
main.cpp
Код
#include <avr/io.h>
#include "clMy.h"

int main(void)
{
clMy My;
volatile uint8_t d=My.Func(3);
for(;;);
return (0);
};

clMy.h
Код
#include <avr/io.h>
#ifndef _clMy_
#define _clMy_

class clMy
{
private:
    uint8_t massiv[count];
public:
    uint8_t Func(uint8_t);
};

#endif

clMy.cpp
Код
#include "clMy.h"

uint8_t clMy::Func(uint8_t temp)
{
return(massiv[temp]);
}


Это все собирается правильно. Но как только хочу использовать template проект собираться перестает. Линковщик ругается, что не определена ссылка на Func. Видимо что-то неправильно делаю, но что? С плюсами еще только знакомлюсь. Помогите.
main.cpp
Код
#include <avr/io.h>
#include "clMy.h"

int main(void)
{
clMy<4> My;
volatile uint8_t d=My.Func(3);
for(;;);
return (0);
};

clMy.h
Код
#include <avr/io.h>
#ifndef _clMy_
#define _clMy_

template <uint8_t count>class clMy
{
private:
    uint8_t massiv[count];
public:
    uint8_t Func(uint8_t);
};

#endif

clMy.cpp
Код
#include "clMy.h"

template <uint8_t count>uint8_t clMy<count>::Func(uint8_t temp)
{
return(massiv[temp]);
}
Go to the top of the page
 
+Quote Post



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

 


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


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