Я пытался создать объект класса в другом классе с помощью конструктора, я получил ошибку «неразрешенный внешний символ». Я изучаю примеры кода и не могу найти ничего неправильного в своем коде.
LinkedList.h
#pragma once
#include <cstdint>
#include <list>
#include <iterator>
using namespace std;
template <class T> class LinkedList
{
public:
LinkedList();
LinkedList(int Size);
list <T> data;
int size;
LinkedList* next;
};
LinkedList.cpp
#include "LinkedList.h"
template <class T>
LinkedList <T> ::LinkedList() {
size = 0;
next = NULL;
}
template <class T>
LinkedList <T> ::LinkedList(int Size) {
size = Size;
next = NULL;
}
Cotp_connection.h
#pragma once
#include "connect_tcp.h"
#include "LinkedList.h"
class Cotp_connection {
public:
Cotp_connection();
Cotp_connection(int size);
};
Cotp_connection.cpp
#include "Cotp_connection.h"
Cotp_connection::Cotp_connection() {
LinkedList <uint8_t> list;
}
Cotp_connection::Cotp_connection(int size) {
LinkedList <uint8_t> list(size);
}
LNK2019 неразрешенный внешний символ "public: __thiscall LinkedList :: LinkedList (void) "(?? 0? $ LinkedList @ E @@ QAE @ XZ), на который ссылается функция" public: __thiscall Cotp_connection :: Cotp_connection (void) "(?? 0Cotp_connection @@ QAE @ XZ) kkkkk_v2
Редактировать: Если я отредактировал свой код таким образом, он работает. Хорошо, но почему он работает сейчас, но не раньше?
Cotp_connection.cpp
Cotp_connection::Cotp_connection() {
LinkedList <uint8_t> list();
}
Cotp_connection::Cotp_connection(int size) {
LinkedList <uint8_t> list((size));
}
Linkedlist.h
#pragma once
#include <cstdint>
#include <list>
#include <iterator>
using namespace std;
template <class T> class LinkedList
{
public:
LinkedList();
LinkedList(int Size) :size(Size),next(NULL) {};
list <T> data;
int size;
LinkedList* next;
};