Bonjour,

Je travaille en C++ avec Qt Creator sous Windows et j'essaie de compiler plusieurs fichiers.

Voici une partie du code :
- dans le main.cpp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
#include "../Graph/mainwindow.h"
#include "main.h"
...
void toto()
{
  List<real>  tata = List<real>(3);
 
  cout << tata[0] << tata[1] << tata[2] << endl;
}
- dans le mainwindow.cpp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
#include "ui_mainwindow.h"
#include "mainwindow.h"
...
template <class T>
List<T>::List(ent aSize)
{
  assert(aSize >= 0);
  _size = aSize;
  if (_size)
    _list = new T[aSize];
  else
    _list = (T*)0;
  for (ent i = 0 ; i < _size ; ++i)
    _list[i] = (T)0;
}
...
- dans le main.h :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
#include "../Graph/mainwindow.h"
...
- dans le mainwindow.h :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
// Aucun #include perso
...
typedef long long int     ent;
typedef long double       real;
template <class T>
class List
{
  public :
    T*        _list;
    ent       _size;
  public :
               List      (ent              aSize          = 0              )      ;
...
};
- dans le Z0.pro (Z0 est le nom du projet)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
#-------------------------------------------------
#
# Project created by QtCreator 2024-07-09T11:10:48
#
#-------------------------------------------------
 
QT      += core gui
 
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
 
TARGET   = Z0
TEMPLATE = app
 
SOURCES += main.cpp\
           ../Graph/mainwindow.cpp
 
HEADERS += main.h\
           ../Graph/mainwindow.h
 
FORMS   += mainwindow.ui
Tant que je n'avais que les fichiers mainwindow.h et mainwindow.cpp, tout fonctionnait.
Mais depuis que je crée plusieurs fichiers (je ne sais pas vraiment le faire) et que je fais dans un autre répertoire (je les référence alors par ../Graph/ avant maindow.h et avant mainwindow.cpp), ça ne marche pas. Je précise que les mots sont quand même reconnus au moment où je tape le code puisqu'ils s'affichent avec une couleur différente.

Le message d'erreur de compilation est :
<<undefined reference to 'List<long double>::List(long long)'>>

Sauriez-vous m'aider s'il vous plaît ?

Merci d'avance.