невозможно построить: неопределенная ссылка на «Battery :: Battery ()» … перемещение сокращено до соответствия: R_X86_64_PC32 для неопределенного символа «Battery :: Battery ()»

У меня проблема с сборкой и запуском юнит-тестов в NetBeans. Ошибка в названии выше, а также в дампе ниже. [Введите описание изображения здесь] [1]

build/Debug/Cygwin-Windows/Device.o: In function `Device::Device()':
/cygdrive/c/Users/Sam/Documents/NetBeansProjects/Rover/Device.cpp:11:
undefined reference to 'Battery::Battery()'
/cygdrive/c/Users/Sam/Documents/NetBeansProjects/Rover/Device.cpp:11:(.text+0x26): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `Battery::Battery()'

Я получаю три одинаковые ошибки для разных строк в моем коде:

#include "Device.h"
Battery _battery; //error here
Device::Device() //error here
{
}

Device::Device(const Device& orig) { //error here
}

Device::~Device() {
}

void Device::operate()
{

}

Battery Device::getBattery()
{
return _battery;
}

Заголовочный файл устройства ->

#include "Battery.h"
#ifndef DEVICE_H
#define DEVICE_Hclass Device {
public:
Device();
Device(const Device& orig);
virtual ~Device();

virtual void operate();
Battery getBattery();
//bool connectBattery();
//bool disconnectBattery();

private:
Battery _battery;

};

#endif  /* DEVICE_H */

Battery.cpp

    #include "Battery.h"int _power;
Battery::Battery(int power)
{
_power=power;
}

Battery::Battery(const Battery& orig)
{
}

Battery::~Battery()
{
}

bool Battery::Charge(int pUnit)
{
_power += pUnit;
return true;
}

bool Battery::Discharge(int pUnit)
{
_power -= pUnit;
return true;
}

Battery.h

#ifndef BATTERY_H
#define BATTERY_H

class Battery {
public:
Battery();
Battery(int power);
Battery(const Battery& orig);
virtual ~Battery();

bool Charge(int pUnit);
bool Discharge(int pUnit);
private:
int _power;
};

#endif  /* BATTERY_H */

Любая помощь была бы отличной, я уже давно бросаю эту проблему ..
редактировать: я также тестирую проект с Alt-F6 + cppunit тесты

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]