Ho risolto almeno gli errori di compilazione con il seguente codice, ora volevo chiedervi se questo codice è effettivamente funzionante.
Mi riferisco specialmente alle funzioni get_width() e get_height(), inoltre volevo chiedervi se effettivamente si chiamano funzioni?
codice:
/*
Gestione delle classi con allacazione dinamica di memoria
*/
#include <stdio.h>
struct OnePixel {
unsigned char r,g,b;
OnePixel()
{
b=g=r='\0';
}
};
class Pixmap
{
private:
int w;
int h;
OnePixel *pixels;
public:
Pixmap()
{
h=w=0;
pixels = NULL;
}
void resize(int ww, int hh){
kill();
if(ww>0 && hh >0)
{
pixels = new OnePixel[ww*hh];
if (pixels) { w= ww; h= hh;}
}
}
void kill(){
h=w=0;
delete[] pixels;
pixels = NULL;
}
~Pixmap()
{
delete[] pixels;
}
OnePixel get_pixel(int i, int j)
const {
return pixels[i*w+j];
}
void set_pixel(OnePixel new_pixel, int i, int j){
pixels[i*w +j] = new_pixel;
}
// Compito
int get_width() const { return w;}
int get_height() const { return h;}
Pixmap_resize (int ww, int hh) {
pixels = new OnePixel[ww*hh];
if (pixels!=NULL){
w=ww; h =hh;
}
}
};
void main()
{
int n = 10;
Pixmap m;
m.resize(256,400);
Pixmap *pm = new Pixmap;
pm->resize(256,400);
delete pm;
Pixmap *am = new Pixmap[n];
for (int i=0;i<n; i++)
delete[] am;
// Esercizio per casa
printf("La larghezza e': %d\n", m.get_width());
printf("L'altezza e': %d\n",m.get_height());
m.Pixmap_resize(10,20);
}