Mam problem ponieważ potrzebuje dodać bardzo obszerna funkcje do programu. Nie chcę żeby znajdowała się w pliku z funkcja main() ponieważ robi się nieczytelnie. Jednak mimo moich starań kompilator nie puszcza tego co nabazgrałem. O to kod przedstawiający mój problem.
Kod:
//dziedziczenie_test.cpp
#include <iostream>
#include "klasa_pierwsza.h"

void test();

int main()

{
	klasa_pierwsza p1;
	p1.a = 1;
	std::cout << "p1.a: " << p1.a << std::endl;
	test();
	system("pause");
	return 0;
}
Kod:
//klasa_pierwsza.h
ifndef klasa_pierwsza_h
#define klasa_pierwsza_h

#include <iostream>

class klasa_pierwsza
{

public:
	int a;
	void wywal();
};

void wywal()
{
	std::cout << "wywal1" << std::endl;
}
#endif
Kod:
//klasa_dwa.h
#ifndef klasa_dwa_h
#define klasa_dwa_h

#include <iostream>
#include "klasa_pierwsza.h"

class klasa_dwa : public klasa_pierwsza
{
	public:
	int b;
	void wywal2();
};
void wywal2()
{
	std::cout << "wywal2" << std::endl;
}
#endif
Kod:
//klasa_dwa.cpp
#include <iostream>
#include "klasa_dwa.h"

void test()
{
	klasa_dwa k2;
	k2.wywal2();
}
To mi pluje kompilator i ciężko mi się ustosunkować do tego co mówi. Błędu 2019 w ogóle nie rozumiem...
Kod:
1>klasa_dwa.obj : error LNK2005: "void __cdecl wywal(void)" (?wywal@@YAXXZ) already defined in dziedziczenie_test.obj
1>klasa_dwa.obj : error LNK2019: unresolved external symbol "public: void __thiscall klasa_dwa::wywal2(void)" (?wywal2@klasa_dwa@@QAEXXZ) referenced in function "void __cdecl test(void)" (?test@@YAXXZ)
1>C:\Users\kk\documents\visual studio 2010\Projects\dziedziczenie_test\Debug\dziedziczenie_test.exe : fatal error LNK1120: 1 unresolved externals