Witam,
piszę program i mam problem z dziedziczeniem w wywala mi błąd: "pomiar": klasa podstawowa niezdefiniowana, no i oczywiście nie działają funkcje z klasy pomiar, siedzę na tym dłuższy czas i nie mogę dojść do tego czemu tak jest. Program ma za zadanie powiekszac tablice o jeden albo razy 2 i liczyc czas wykonania czynnosci. Ogólnie to wszystko inne dziala oprócz funkcji z klasy "pomiar" w klasie "mojatablica".
#include "stdafx.h"
#include <iostream>
#include <ctime>
using namespace std;
class mojatablica :public pomiar{
public:
void wykonaj();
void menu();
void pobierz_dlugosc();
void rozmiar_tablicy();
void powieksz_jeden();
void powieksz_razy();
void dotnij(int dlugosc);
private:
int *tablica = NULL;
int rozmiar = 0;
int dlugosc = 0;
int powtorzenia = 0;
};
void mojatablica::wykonaj() {
menu();
}
void mojatablica::menu() {
rozmiar_tablicy();
int wybor;
cout << "1: Powieksz tablice: wielkosc+1" << endl
<< "2: Powieksz tablice: wilekosc*2" << endl;
cin >> wybor;
switch (wybor) {
case 1:
pobierz_dlugosc();
zacznij_mierzyc();
while (rozmiar != dlugosc) { //powiekszanie poki nie osiagnie conajmniej wilkosci zadanej
powieksz_jeden();
}
zakoncz_mierzyc();
break;
case 2:
pobierz_dlugosc();
zacznij_mierzyc();
while (dlugosc >= rozmiar) { //powiekszanie poki nie osiagnie conajmniej wilkosci zadanej
powieksz_razy();
}
dotnij(dlugosc); //docinanie do zadanej wielkosci
zakoncz_mierzyc();
break;
}
}
void mojatablica::pobierz_dlugosc() {
cout << "podaj wielkosc docelowa" << endl;
cin >> dlugosc;
}
void mojatablica::rozmiar_tablicy() {
rozmiar = 10;
tablica = new int[rozmiar];
}
void mojatablica::powieksz_jeden() {
int *bufor = new int[rozmiar];
for (int i = 0; i < rozmiar; i++) {
bufor[i] = tablica[i];
}
delete[]tablica;
tablica = new int[rozmiar + 1];
for (int i = 0; i < rozmiar; i++) {
tablica[i] = bufor[i];
}
delete[]bufor;
rozmiar++;
}
void mojatablica::powieksz_razy() {
int *bufor = new int[rozmiar];
for (int i = 0; i < rozmiar; i++) {
bufor[i] = tablica[i];
}
delete[]tablica;
tablica = new int[rozmiar * 2];
for (int i = 0; i < rozmiar; i++) {
tablica[i] = bufor[i];
}
delete[]bufor;
rozmiar = rozmiar * 2;
}
void mojatablica::dotnij(int dlugosc) {
int *bufor = new int[dlugosc];
for (int i = 0; i < dlugosc; i++) {
bufor[i] = tablica[i];
}
delete[]tablica;
tablica = new int[dlugosc];
for (int i = 0; i < dlugosc; i++) {
tablica[i] = bufor[i];
}
delete[]bufor;
rozmiar = dlugosc;
}
class pomiar {
public:
void zacznij_mierzyc();
void zakoncz_mierzyc();
protected:
clock_t stop = 0;
clock_t start = 0;
int suma = 0;
int czas = 0;
};
void pomiar::zacznij_mierzyc() {
start = clock();
}
void pomiar::zakoncz_mierzyc() {
stop = clock();
czas = (int)1000. / CLOCKS_PER_SEC*(stop - start);
}
int main() {
mojatablica tab;
tab.wykonaj();
system("pause");
return 0;
}