• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed LNK2019 - błąd przy polimorfizmie

0 głosów
46 wizyt
pytanie zadane 22 stycznia 2021 w C i C++ przez AnimPony Początkujący (390 p.)
zamknięte 22 stycznia 2021 przez AnimPony

Witam,

napisałem krótki kod, w którym korzystam z polimorfizmu, natomiast przy kompilacji wyskakuje następujący błąd:

Error    LNK2019    unresolved external symbol "public: __cdecl Character::Character(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,int,int)" (??0Character@@QEAA@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@HH@Z) referenced in function "public: __cdecl Warrior::Warrior(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,int,int)" (??0Warrior@@QEAA@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@HH@Z)   

 

Kod:

#include <iostream>

using namespace std;

class Character {
protected:
	string name;
	int hp;
	int strenght;
public:
	Character(string n, int h, int s);
	virtual void attact(Character* target) {
		int dmg = rand() % strenght;
		cout << this->name << " hit " << target->name << " for " << dmg << " damage" << endl;
		target->hp -= dmg;
	}
	void show() {
		cout << this->name << ": " << this->hp << endl;
	};

};

class Warrior :public Character {
public:
	Warrior(string n = "Knight", int h = 100, int s = 10) :Character(n, h, s){
		this->name = n;
		this->hp = h;
		this->strenght = s;
		cout << "Warrior " << this->name << " has been created" << endl;
	}
};

class Mage :public Character {
protected:
	int mana;
public:
	Mage(string n, int h, int s, int m) :Character(n, h, s) {
		this->mana = m;
		cout << "Mage" << this->name << "has been created" << endl;
	}
};

int main() {
	Warrior* W = new Warrior;
	W->show();

	delete W;
	return 0;
}

 

Z góry dziękuję za każdy pomocny komentarz c:

komentarz zamknięcia: otrzymałem odpowiedz

1 odpowiedź

+1 głos
odpowiedź 22 stycznia 2021 przez adrian17 Ekspert (306,660 p.)
wybrane 22 stycznia 2021 przez AnimPony
 
Najlepsza
Character(string n, int h, int s);

A gdzie jest implementacja tego konstruktora?

komentarz 22 stycznia 2021 przez AnimPony Początkujący (390 p.)
Nie zdawałem sobie sprawy, że implementacja jest konieczna, dziękuję za odpowiedź

Podobne pytania

+1 głos
1 odpowiedź 229 wizyt
0 głosów
1 odpowiedź 96 wizyt
pytanie zadane 1 listopada 2015 w C i C++ przez s92 Bywalec (2,300 p.)
0 głosów
0 odpowiedzi 59 wizyt

86,484 zapytań

135,240 odpowiedzi

300,484 komentarzy

57,230 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...