Я новичок в C ++, и я пытаюсь использовать наследование, но у меня есть ошибка.
Это говорит
Ошибка 6, ошибка LNK1120: 2 неразрешенных внешних кода L: \ 2011-08 \ C ++ \ Assignment \ Drug Management \ Debug \ Drug Management.exe 1 1 Управление лекарствами
Есть три класса: Животное, Овца и Крупный рогатый скот.
Что я сделал до сих пор:
//Animal.h
#ifndef ANI_H
#define ANI_H
#include <string>
#include "Treatment.h"
#include "jdate.h"
class Animal{
protected:
int id;
double weight;
int yy;
int mm;
int dd;
double dose;
char sex;
//Treatment treatArray[];
public:
Animal();
Animal(int newid, double newweight, int yy, int mm, int dd, double newdose, char newsex);
~Animal();
virtual double calcDose();
//void addAnimal();
double getDaysDifference();
};
#endif
//Cattle.h
#ifndef CATT_H
#define CATT_H
#include "Animal.h"
#include <string>
using namespace std;
class Cattle : public Animal{
private:
string category;
public:
Cattle();
Cattle(int newid, double newweight, int yy, int mm, int dd,
double newdose, char newsex, string newcategory);
~Cattle();
virtual double calcDose();
string getCategory();
};
#endif
//Animal.cpp
#include "Animal.h"
using namespace std;
Animal::Animal(int newid, double newweight, int yy, int mm, int dd, double newaccDose, char newsex)
{
id = newid;
weight = newweight;
dose = newaccDose;
sex = newsex;
}
double Animal::getDaysDifference(){
jdate dateOfBirth(dd,mm,yy);
jdate now;
double diff = now-dateOfBirth;
return diff;
}
//Cattle.cpp
#include "Cattle.h"
Cattle::Cattle(int newid, double newweight, int yy, int mm, int dd,
double newdose, char newsex, string newcategory)
: Animal(id, weight, yy,mm,dd, dose, sex)
{
id = newid;
weight = newweight;
dose = newdose;
sex = newsex;
Cattle::category = newcategory;
}
string Cattle::getCategory(){
return category;
}
double Cattle::calcDose(){
Cattle* c1;
if(c1->getDaysDifference() < 90 || c1->getCategory() == "Meat"){
c1->dose = 0;
return c1->dose;
}
else if(c1->getCategory() == "Dairy"){
if (c1->weight < 250 || c1->dose > 200){
c1->dose = 0;
}
else{
c1->dose = c1->weight * 0.013 + 46;
}
return c1->dose;
}
else if(c1->getCategory() == "Breeding"){
if (c1->weight < 250 || c1->dose > 250){
c1->dose = 0;
}
else{
c1->dose = c1->weight * 0.021 + 81;
}
return c1->dose;
}
else
{
cout << "It is not valid category" << endl;
}
}
Класс овец почти такой же, как у крупного рогатого скота.
Я не уверен, что я на правильном пути.
То, что я пытаюсь сделать, это наследовать (или полиморфизм) calcDose () в Cattle.cpp взяв из Animal.h.
Можете ли вы дать мне совет?
Приветствия