Je me suis remis au C++ depuis peu (quelques heures) et malgrès le fait de lire et relire les parties consacrés dans 3 des cours que j'ai trouvé ici même, je ne comprends pas ce qu'on me reproche (je suis inocent, monsieur l'agent).

Voici donc le header et le code.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
 
typedef unsigned char pixel[4];
 
class RasterLike {
private :
	pixel **data;
	const unsigned int width;
	const unsigned int height;
public :
	RasterLike(unsigned int _width, unsigned int _height);
	~RasterLike(void);
	void setPixel(unsigned int x, unsigned int y, pixel pix);
	pixel getPixel (unsigned int x, unsigned int y) const;
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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

#include "cov001.h"

RasterLike::RasterLike(unsigned int _width, unsigned int _height) :
	width(_width), height(_height)
{
	this->data = new pixel* [this->width];
	for (unsigned int x = 0; x < this->height; x++) {
		this->data[x] = new pixel[this->height];
	}
	return;
}

RasterLike::~RasterLike() {
	for (unsigned int x = 0; x < this->height; x++) {
		delete[] this->data[x];
	}
	delete this->data;
}

void RasterLike::setPixel(unsigned int x, unsigned int y, pixel pix) {
	this->data[x][y] = &pix;
}

pixel RasterLike::getPixel(unsigned int x, unsigned int y) const {
	return this->data[x][y];
}

int main() {
	RasterLike a = new RasterLike(320,240);
}
(en fushia, les lignes 10 et 28)

Et je bute à la récetion des méssages d'erreurs suivant à la compilation :

cov001.cpp
f:\program files\avisynth 2.5\avisynth_256_src\avsdll\cov001.h(19) : error C2090: tableau retourné par la fonction
f:\program files\avisynth 2.5\avisynth_256_src\avsdll\cov001.cpp(10) : error C2533: 'RasterLike::{ctor}' : type de retour non autorisé pour les constructeurs
f:\program files\avisynth 2.5\avisynth_256_src\avsdll\cov001.cpp(28) : error C2440: '=' : impossible de convertir de 'unsigned char *__w64 []' en 'pixel'
Aucune conversion en types tableau, même s'il y a des conversions en références ou en pointeurs de tableau

[...]
Merci.

PS : compilé sous M$ Visual Studio 2005 Express.