Создавал статическую библиотеку на c++, писал к ней тесты, всё было отлично. Стал вопрос все перенести в консольный проект CLR, прям туда просто скопировал файлы с своей библиотеки, всё отлично работало. Решил доделать UNIT TESTS, но тут вот не задача, подключил всю эту красоту к приложению, всё нормально, но, начало выдавать ошибку линковщика 2019, я так понимаю что он наверное cpp-шники не видет или что? По тому, что когда на конструкторы по умолчанию ругался, где дифенишен был вынесен в cpp, я написал его в заголовочный и всё запахало.
Мало-ли, код одного из классов:
Point.h#pragma once
namespace Battleship
{
class Point
{
private:
unsigned iX;
unsigned iY;
public:
Point() : iX(0), iY(0) { };
Point(int X, int Y) : iX(X), iY(Y) { };
const int X();
const int Y();
void Set(int X, int Y);
bool operator==(Point Value);
bool operator!=(Point Value);
void MoveUp();
void MoveDown();
void MoveLeft();
void MoveRight();
};
}
Point.cpp#include "Point.h"
const int Battleship::Point::X()
{
return iX;
}
const int Battleship::Point::Y()
{
return iY;
}
void Battleship::Point::Set(int X, int Y)
{
if (X >= 0 && Y >= 0)
{
iX = X;
iY = Y;
}
else
{
return;
}
}
bool Battleship::Point::operator==(Point Value)
{
if (this->iX == Value.iX && this->iY == Value.iY)
{
return true;
}
else
{
return false;
}
}
bool Battleship::Point::operator!=(Point Value)
{
if (!(*this == Value))
{
return true;
}
else
{
return false;
}
}
void Battleship::Point::MoveUp()
{
iY--;
}
void Battleship::Point::MoveDown()
{
iY++;
}
void Battleship::Point::MoveLeft()
{
iX--;
}
void Battleship::Point::MoveRight()
{
iX++;
}
UnitTest#include "stdafx.h"
#include "CppUnitTest.h"
#include "Point.h"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
using namespace Battleship;
namespace BattleShipUnitTests
{
TEST_CLASS(UnitTest1)
{
public:
TEST_METHOD(TestMethod1)
{
Point Point1 = *new Point(); //Раньше тут вылетала 2019, пока я не поменял конструктор поумолчанию
Point Point2 = *new Point(1, 2);
Point1.MoveLeft(); //Теперь она вылетает тут...
}
};
}
Может быть я чего-от не догоняю, буду благодарен, кто объяснит, хочется научится и разобраться :)