Error with Undefined reference

How I can fix this error?

Undefined reference to 'objZmogus::PridetiNauja()'
Undefined reference to 'objZmogus::Rezultatai()'


problem is in main..

Please help me with it !


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203

main.cpp



#include <iostream>
#include <string>
#include <cstdlib>

using namespace std;

#include "zmogus.h"		//objektai

int main() {
	objZmogus Zmogus;		//objektas
	char c;					//laikinas, ið esmës nenaudojamas

	while (true) {
		Zmogus.PridetiNauja();			//Pridedam informacijà
		cout << "\nAr dar ivedinesite? (t/n)\n";
		cin.get(c);
		if (c == 'n') break;			//Jei nebeávedinës, iðeinam
		cin.get(c);		//nuimti Enter simboliui
	}

	Zmogus.Rezultatai();				//Parodom rezultatus

	system("PAUSE");
	return 0;
}


//////////////////////////////////////////////////////////////





zmogus.cpp




#include "zmogus.h"

void objAplinka::NaujaAplinka() {
	aplinka Aplinka;
	char c;
	
	cout << "Kokia tada buvo temperatura? (laipsniai C)\n";		//suþinom tos dienos aplinkà
	cin >> Aplinka.Oras.temperatura;
	cin.get(c);		//Enter
	cout << "Koks vejo stiprumas? (m/s)\n";
	cin >> Aplinka.Oras.vejas;
	cin.get(c);		//Enter
	cout << "Ar sviete saule? (t/n)\n";
	cin.get(c);
	Aplinka.Oras.saule = (c == 't');
	cin.get(c);		//Enter
	cout << "Ar lijo lietus? (t/n)\n";
	cin.get(c);
	Aplinka.Oras.lietus = (c == 't');
	cin.get(c);		//Enter
	cout << "Kokia buvo kolektyvo nuotaika?\n";
	getline(cin, Aplinka.Kolektyvas);
	
	VisosAplinkos.push_back(Aplinka);				//á sàraðà ádedam ávestà informacijà
}

void objZmogus::PridetiNauja() {
	zmogus Zm;
	char c;
	
	objAplinka::NaujaAplinka();				//pridedam naujà aplinkà
	
	Zm.AplinkosIter = VisosAplinkos.end();	//suþinom nuorodà á paskutinæ pridëtà
	Zm.AplinkosIter--;						//reikia, nes .end() nurodo á jau po paskuinio esantá

	cout << "Kokia zmogaus nuotaika?\n0 - bloga, 1 - prasta, 2 - vidutiniska, 3 - gera, 4 - puiki\n"
			<< "Iveskite tik skaiciu.\n";
	cin >> Zm.nuotaika;						//nuskaitom nuotaikà
	cin.get(c);		//Enter
	
	if ((Zm.nuotaika < 0) || (Zm.nuotaika > 4)) Zm.nuotaika = 2;		//kad bûtø geras skaièius
	
	Zmogus.push_back(Zm);					//ádedam á sàraðà nuotaikà
}

void objZmogus::Rezultatai() {
	int i, temp, vejas, saule, lietus, n;
	string nuotaikos [] = {"bloga", "prasta", "vidutiniska", "gera", "puiki"};
	list<zmogus>::iterator IterZm;
	map<string, int> Kolektyvai;
	map<string, int>::iterator IterKol;
	ofstream R;
	
	R.open("Rezultatai.txt");		//èia raðysim rezultatus
	
	for (i = 0; i <= 4; i++) {		//su kiekviena ámanoma nuotaika
		temp = 0; vejas = 0; saule = 0; lietus = 0; n = 0; Kolektyvai.clear();		//kiekvienai nuotaikai skaièiuojam atskirai
		for (IterZm = Zmogus.begin(); IterZm != Zmogus.end(); IterZm++) {		//su visom þmogaus dienom
			if ((*IterZm).nuotaika == i) {								//jei buvo bûtent tos nuotaikos
				temp += (*(*IterZm).AplinkosIter).Oras.temperatura;		//skaièiuojam duomenis dël statistikos
				vejas += (*(*IterZm).AplinkosIter).Oras.vejas;
				saule += (*(*IterZm).AplinkosIter).Oras.saule ? 1 : 0;	//jei saulëta, pridedam 1, kitaip pridedam 0
				lietus += (*(*IterZm).AplinkosIter).Oras.lietus ? 1 : 0;
				n++;													//skaièiuojam kiek viso dienø

				IterKol = Kolektyvai.find((*(*IterZm).AplinkosIter).Kolektyvas);
				if (IterKol == Kolektyvai.end()) {						//jei asociatyviniame sàraðe neradom tokios nuotaikos
					Kolektyvai[(*(*IterZm).AplinkosIter).Kolektyvas] = 1;		//ádedam ir pasakom, kad tokiø kol kas buvo 1
				} else {
					(*IterKol).second++;				//jei radom, padidinam jø kieká
				}
			}
		}

		if (n > 0) {
			cout << "Zmogaus nuotaika: " << nuotaikos[i] << endl;			//iðvedam visà informacijà
				R << "Zmogaus nuotaika: " << nuotaikos[i] << endl;
			cout << "\tViso tokiu dienu: " << n << endl;
				R << "\tViso tokiu dienu: " << n << endl;
			cout << "\tVidutine tempratura: " << ((float) temp / n) << endl;
				R << "\tVidutine tempratura: " << ((float) temp / n) << endl;
			cout << "\tVidutinis vejo stiprumas: " << ((float) vejas / n) << endl;
				R << "\tVidutinis vejo stiprumas: " << ((float) vejas / n) << endl;
			cout << "\tSauletu dienu: " << saule << endl;
				R << "\tSauletu dienu: " << saule << endl;
			cout << "\tLietingu dienu: " << lietus << endl;
				R << "\tLietingu dienu: " << lietus << endl;
			cout << "\tKolektyvo nuotaikos: " << endl;
				R << "\tKolektyvo nuotaikos: " << endl;
			for (IterKol = Kolektyvai.begin(); IterKol != Kolektyvai.end(); IterKol++) {	//iðvedam visas nuotaikas ir jø skaièiø
				cout << "\t\t" << (*IterKol).first << ": " << (*IterKol).second << "k.\n";
					R << "\t\t" << (*IterKol).first << ": " << (*IterKol).second << "k.\n";
			}
			cout << endl;
				R << endl;
		}
	}

	R.close();
}



////////////////////////////////////////////////////////////////////



zmogus.h 




#ifndef Header_zmogus
#define Header_zmogus		//Kad du kartus neáterptø to paties failo

#include <iostream>
#include <string>
#include <list>
#include <map>
#include <fstream>

using namespace std;

typedef struct {			//oro struktura
	int temperatura;
	int vejas;
	bool lietus;
	bool saule;
} oras;

typedef struct {			//aplinkos struktura => oras + kolektyvo nuotaika
	string Kolektyvas;
	oras Oras;
} aplinka;

typedef struct {			//zmogaus dienos struktura - kokia buvo aplinka (nuoroda á aplinkos sàraðà) ir þmogaus nuotaika (nr.)
	list<aplinka>::iterator AplinkosIter;
	int nuotaika;
} zmogus;

class objAplinka {			//bazinë klasë
protected:
	list<aplinka> VisosAplinkos;	//sàraðas ið aplinkø
public:
	objAplinka() {VisosAplinkos.clear();};		//sukûrus iðvalo sàraðà
	
	void NaujaAplinka();			//prideda naujà aplinkà á saraðà
};

class objZmogus : private objAplinka {		//iðvestinë klasë
	list<zmogus> Zmogus;					//sàraðas þmogaus nuotaikø ir nuorodø á tos dienos aplinkà
public:
	objZmogus() {Zmogus.clear();};			//sukûrus iðvalo

	void PridetiNauja();			//prideda naujà dienà (aplinkà(iðkvieèia bazinës klasës funkcijà) ir þmogas nuotaikà)
	void Rezultatai();				//iðveda rezultatus
};

#endif
I can see the definitions for those methods, so it must be that you're not correctly linking the object files created from zmogus.cpp and main.cpp.
Topic archived. No new replies allowed.