Я изучаю C++, но попал на плато, пытаясь создать библиотеку. Использование Visual Studio 2013, я получаю эту ошибку:Пытается создать библиотеку в C++. Проект тестирования не может найти реализацию объявленного конструктора?
Error 1 error LNK2019: unresolved external symbol "public: __thiscall Polynomial::Polynomial(void)" ([email protected]@[email protected]) referenced in function _main A:\Medier\Desktop\PolyLib\Test\Test.obj Test
TestProject в настоящее время сократить до этого:
#include "A:\Medier\Desktop\PolyLib\PolyLib\PolyLib.h"
using namespace std;
void main()
{
Polynomial poly;
}
Заголовочный файл библиотеки, PolyLib.h
, выглядит следующим образом:
using namespace std;
class Polynomial {
private:
double* Coefficients; //Array of coefficients - Pointer type.
int Degree; //The highest exponent of the polynomial
public:
Polynomial(); //Default constructor - Creates the trivial polynomial 0.
Polynomial(int degree, double coefficients[]); //Constructor for specific polynomials
Наконец, в библиотеке есть файл CPP, PolyLib.cpp
, обеспечивающий реализацию для файла заголовка. Похоже, это:
#include "PolyLib.h"
using namespace std;
Polynomial::Polynomial() {
Degree = 0;
Coefficients = new double[Degree + 1];
Coefficients[0] = 0;
}
Polynomial::Polynomial(int degree, double coefficients[]) : Degree(degree), Coefficients(coefficients) {
int i = 0;
}
Я понимаю, что мой тестовый проект выглядит файл PolyLib.h
, чтобы увидеть, что материал доступен. И я понимаю, что ошибка говорит, что не может найти фактическую реализацию пустого конструктора для Polynomial. Таким образом, я делаю вывод, что файл PolyLib.cpp
не используется.
Может ли кто-нибудь сказать мне, куда я иду отсюда?
Размещение 'using namespace std;' - это файлы заголовков, это ** плохая ** идея. Это не источник вашей проблемы, но вы все равно не должны этого делать. –
Возможно, вы правы, но могу ли я спросить, почему? ** Редактировать ** - у Google было много ответов, неважно. :) – Treeline
См. Http://stackoverflow.com/questions/14575799/using-namespace-std-in-a-header-file –