Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Diablo II Resurrected: il nuovo DLC Reign of the Warlock
Diablo II Resurrected: il nuovo DLC Reign of the Warlock
Abbiamo provato per voi il nuovo DLC lanciato a sorpresa da Blizzard per Diablo II: Resurrected e quella che segue è una disamina dei nuovi contenuti che abbiamo avuto modo di sperimentare nel corso delle nostre sessioni di gioco, con particolare riguardo per la nuova classe dello Stregone
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup
Siamo tornati nel parco tecnologico di Trieste per il kick-off del programma che mette a disposizione di cinque startup le infrastrutture di ricerca, dal sincrotrone Elettra ai laboratori di genomica e HPC. Roberto Pillon racconta il modello e la visione
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo
HP OMEN MAX 16-ak0001nl combina RTX 5080 Laptop e Ryzen AI 9 HX 375 in un desktop replacement potente e ben raffreddato, con display 240 Hz e dotazione completa. Autonomia limitata e calibrazione non perfetta frenano l'entusiasmo, ma a 2.609 euro è tra le proposte più interessanti della categoria.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 26-03-2008, 11:41   #1
Dani88
Senior Member
 
L'Avatar di Dani88
 
Iscritto dal: Aug 2005
Città: Genova
Messaggi: 2285
[C++] Problema con array di oggetti

###############################################################
PROBLEMA LINKER RISOLTO (VEDI PIU' GIU' PER IL PROBLEMA SCRITTO NEL TITOLO )
#################################################################


Raga avrei bisogno di aiuto: quando vado a compilare il seguente codice
Codice:
#include "allegro.h"

// ----------------------------- dichiarazione variabili ------------------------------
BITMAP *buf,*sprite;		
PALETTE colori;	// in colori andrà inserito il valore della profondità di colore
int w,h;
//--------------------------------------------------------------------------------------

class Video{	//contiene tutti i metodi per la rappresentaz a video
public:
	Video();
	~Video(){destroy_bitmap(buf);}
	/// w=wide, h=height dimensioni finestra
	void InitDisplay(int disp,int w, int h){	/*inizializza la parte grafica
												ATTENZIONE: w e h 	devono essere dichiarate
												come variabili globali*/
		set_color_depth(disp);
		set_palette(colori);
		set_gfx_mode(GFX_AUTODETECT_WINDOWED, w, h, 0, 0); 
		buf = create_bitmap(w, h);
		clear(buf);
	}
	void DB(int w,int h){	//doppio buffer
		vsync();	
		blit(buf, screen, 0, 0, 0, 0, w, h);
		clear(buf);
	}
};

class Sprite{
	int x,y;
public:
	Sprite(int setx,int sety){sprite = load_bmp("pacstop.bmp",colori);x=setx; y=sety;}
	~Sprite(){destroy_bitmap(sprite);}
	int Getx(){return x;}
	int Gety(){return y;}
	void Mostra(){draw_sprite(buf,sprite,Getx(),Gety());}
	void Move(){
		if (key[KEY_UP]){y-=1;if(y<=0)y=0;}
		if (key[KEY_DOWN]){y+=1;if(y>=h)y=h;}
		if (key[KEY_LEFT]){x-=1;if(x<=0)x=0;}
		if (key[KEY_LEFT]){x+=1;if(x>=w)x=w;}
	}	
};



//
//
//------------------------------------------------------------
//INIZIO PROGRAMMA MAIN
void main(){
	allegro_init();	
	install_keyboard();
	//--------------------- SPAZIO PER ISTANZIARE GLI OGGETTI ---------------------
	Video MainGame;	//inizializzo un oggetto di tipo Video chiamo MainGame
	Sprite Player(200,200);	//istanzio un oggetto tipo Sprite nella posiz 200,200
	//-----------------------------------------------------------------------------
	//
	//----------------- EVENTUALE INIZIALIZZAZ VARIABILI --------------------
	w=640;h=480;
	//ho impostato le dimensioni della finestra
	//-----------------------------------------------------------------------
	MainGame.InitDisplay(32,w,h);
		
		
	//------------------------- CARICA IMG E SPRITE -------------------------
	// forse superfluo xkè si fa con i metodi di classe
	//-----------------------------------------------------------------------



	//------------------------- INIZIO CICLO WHILE CHE SI RIPETE------------------------
	while (!key[KEY_ESC]) {

		MainGame.DB(w,h);	/* inserisco qui la procedutra creata precedentemente per la 
							visualizzazione	schermo 'doppiobuffering();' */
		Player.Move();
		Player.Mostra();

		
	}
	//---------------------------------------------------------------------------
	// DISTRUZIONE DI TUTTE LE IMG PRESENTI IN MEMORIA
	Player.~Sprite();
	MainGame.~Video();

	//--------------------------------------------------------------------------
}END_OF_MAIN();
il linker mi dice:
Codice:
Error 1 error LNK2019: unresolved external 
symbol "public: __thiscall Video::Video(void)" (??0Video@@QAE@XZ) referenced in 
function "void __cdecl _mangled_main(void)" (?_mangled_main@@YAXXZ)	prova 
object oriented.obj
Non riesco a capire cosa c'è che non va . Un'altra cosa, così la prox volta magari riesco a capire: come va interpretato il messaggio sopra del linker? Cioè gli manca qualcosa?
Grazie a tutti
__________________
Lego ™ Fans Club

Ultima modifica di Dani88 : 27-03-2008 alle 18:35.
Dani88 è offline   Rispondi citando il messaggio o parte di esso
Old 26-03-2008, 11:51   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Dove lo implementi il costruttore di default ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 26-03-2008, 13:32   #3
Dani88
Senior Member
 
L'Avatar di Dani88
 
Iscritto dal: Aug 2005
Città: Genova
Messaggi: 2285
è vero cavoli manca {} (non deve fare nulla per ora...
Grazie mille
__________________
Lego ™ Fans Club
Dani88 è offline   Rispondi citando il messaggio o parte di esso
Old 26-03-2008, 14:29   #4
Dani88
Senior Member
 
L'Avatar di Dani88
 
Iscritto dal: Aug 2005
Città: Genova
Messaggi: 2285
già che ci sono un'altra cosa: se lascio i 2 distruttori in fondo, quando premo ESC mi esce la finestra che dice che si è verificato un errore se voglio debuggare con VS 2005, se invece gli dico di ignorarli usando // il programma si chiude tranquillamente. Non riesco a capire il motivo...i distruttori devo chiamarli io giusto? Non fanno da soli...
__________________
Lego ™ Fans Club
Dani88 è offline   Rispondi citando il messaggio o parte di esso
Old 26-03-2008, 14:37   #5
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
No, vengono chiamati da soli sugli oggetti allocati staticamente. Sugli oggetti allocati con new vengono chiamati quando fai la delete.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 26-03-2008, 16:45   #6
Dani88
Senior Member
 
L'Avatar di Dani88
 
Iscritto dal: Aug 2005
Città: Genova
Messaggi: 2285
ah ok, infatti mi ricordavo una cosa di questo tipo ma siccome VS me li dava tra i metodi della classe mi è venuto il dubbio che li dovessi chiamare io.
Altra piccola curiosità/dubbio (scusa se ne approfitto ma siccome abbiamo iniziato le classi da poco all'uni a volte ho qualche dubbio)
Se io creo una classe pippo così:
Codice:
class pippo{
        int x,y;  //settate col costruttore a 0
public:
//metodi vari
};
se poi istanzio 2 oggetti tipo
pippo obj1;
pippo obj2;

Ognuno dei 2 oggetti ha una sua x e una sua y?
cioè se modifico x=2 e y=4 di obj2, quelle di obj1 rimangono a 0 giusto?
__________________
Lego ™ Fans Club
Dani88 è offline   Rispondi citando il messaggio o parte di esso
Old 26-03-2008, 16:50   #7
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Tutto giusto. Sono due istanze diverse. Al contrario se usi la parola static hai una sola istanza del membro per tutte le istanze di quella classe.
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Diablo II Resurrected: il nuovo DLC Reign of the Warlock Diablo II Resurrected: il nuovo DLC Reign of the...
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup Deep Tech Revolution: così Area Science P...
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo HP OMEN MAX 16 con RTX 5080: potenza da desktop ...
Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta Recensione Google Pixel 10a, si migliora poco ma...
6G, da rete che trasporta dati a rete intelligente: Qualcomm accelera al MWC 2026 6G, da rete che trasporta dati a rete intelligen...
Secondo trailer del nuovo anime di Ken i...
La guerra tra Russia e Ucraina arriva co...
KadNap: il botnet che ha infettato 14.00...
Il cloud è sempre più cent...
Lisuan svela la GPU gaming LX 7G106: deb...
Amazon piena di offerte, ma queste sono ...
Wi-Fi veloce: router e mesh Huawei super...
La retrocompatibilità di Project ...
InvestCloud chiude la sede italiana di M...
TSMC resta irraggiungibile, ma Samsung r...
Il futuro di Dacia: ecco Striker, ma arr...
LG e DataVolt avviano una partnership: s...
Google, una modifica del kernel Android ...
A casa di Givi Bike per scoprire la line...
Il nuovo Samsung Galaxy S26 Ultra si pu&...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 16:14.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v