Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Il primo Micro RGB di Samsung per il salotto è il 65 pollici da 2.749 euro. Sul banco di misura abbiamo rilevato 2.000 nit di picco, nero assoluto con il local dimming e il 91,4% del BT.2020, il colore più ampio che abbiamo misurato su un LCD
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
Apple ha rinnovato iPhone 18 Pro soprattutto dentro: chip A20 Pro a 2 nm con memoria affiancata al SoC, camera di vapore tre volte più ampia, Dynamic Island più piccola del 25% grazie a Face ID sotto il display e fotocamera principale con diaframma variabile da f/1.48 a f/4. Lo abbiamo misurato al colorimetro e nei benchmark, usato con iOS 27 e messo alla prova in fotografia tra laghi, borghi e interni poco illuminati
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
A Londra, per il trentennale dei Toughbook, Panasonic ha presentato il tablet G3 e il 2-in-1 34. Con Jon Tucker, a capo dell'ingegneria europea, abbiamo parlato di ciò che non si vede: batterie, antenne, porte seriali e accorgimenti nati sul campo
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 23-09-2006, 18:18   #1
Bonfo
Senior Member
 
L'Avatar di Bonfo
 
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
[C++] Interfacce

Odio ammetterlo, ma con C++ sono proprio una schiappa!!!

Eccola domanda: come si fa una interfaccia??
Io sono partito con questo (sto lavorando con OpenCV):
Codice:
#include "cv.h"

class CVOperator
{
public:
	virtual IplImage* Apply(IplImage* image);
};
questo è file CVOperator.h senza che esista un CVOperator.cpp

A ruota ho poi realizzato questa classe
Codice:
#include "CVOperator.h"

#include "cv.h"

class GreyScale: CVOperator
{
public:
	GreyScale();
	virtual ~GreyScale();
	
	IplImage* Apply(IplImage* image);
};
e questo è il file GreyScale.h ed esiste il file GreyScale.cpp con il codice

Infine ho realizzato questo:
Codice:
CVImage* CVImage::Apply(CVOperator* cvOperator)
{
	return new CVImage(cvOperator->Apply(m_image));
}
nel codice della classe CVImage.

Bene...compilazione Ok
Linking :
Quote:
./src/GreyScale.o(.text$_ZN10CVOperatorC2Ev[CVOperator::CVOperator()]+0x8): In function `ZN20wxThreadHelperThreadD0Ev':
D:/Valerio/workspace/CVLab/Debug/../src/GreyScale.cpp: undefined reference to `vtable for CVOperator'




P.S.: Lo sembra che sembra complesso, ma è per tenere il membro IplImage di CVImage sempre privato e senza un getter
__________________
Software engineer
Bonfo's Blog
Bonfo è offline   Rispondi citando il messaggio o parte di esso
Old 23-09-2006, 20:28   #2
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
la classe CVOperator dovrebbe essere l'interfaccia? se è così allora l'errore sta nel fatto che un'interfaccia deve contenere solo metodi "pure virtual", ovvero metodi dichiarati con virtual e con "= 0" alla fine; e ovviamente senza implementazione.

in altre parole devi fare un piccolo cambiamento, dopodichè dovrebbe andare:
Quote:
#include "cv.h"

class CVOperator
{
public:
virtual IplImage* Apply(IplImage* image) = 0;
};

Ultima modifica di 71104 : 23-09-2006 alle 20:30.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 24-09-2006, 02:46   #3
Bonfo
Senior Member
 
L'Avatar di Bonfo
 
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
Ottimo!!! Problema risolto.

Ora però ce ne è un altro !!!
Quote:
error: `CVOperator' is an inaccessible base of `GreyScale'
ed ecco il codice che ha generato l'errore:

Codice:
    	GreyScale* greyScale = new GreyScale();
    	CVImage* greyLevelImage = cvImage->Apply(greyScale);
...e adesso che ha che non va??
__________________
Software engineer
Bonfo's Blog
Bonfo è offline   Rispondi citando il messaggio o parte di esso
Old 24-09-2006, 11:37   #4
Bonfo
Senior Member
 
L'Avatar di Bonfo
 
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
Ma porcaccia!!!

Mi ero scordato il public nella dichiarazione dell'ereditarietà.

Codice:
#include "CVOperator.h"

#include "cv.h"

class GreyScale: public  CVOperator
{
public:
	GreyScale();
	virtual ~GreyScale();
	
	IplImage* Apply(IplImage* image);
};
__________________
Software engineer
Bonfo's Blog
Bonfo è offline   Rispondi citando il messaggio o parte di esso
Old 24-09-2006, 17:18   #5
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
risolto tutto? mi fa piacere, così non hai scuse aggiuntive per tornare a lavorare su DC
71104 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura Samsung Micro RGB R95H, il primo LCD a LED rossi...
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre iPhone 18 Pro: la recensione del miglior iPhone ...
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34 Panasonic, 30 anni di Toughbook: la "Bibbia...
realme C100x, lo smartphone economico con la batteria da 7500 mAh. La recensione realme C100x, lo smartphone economico con la bat...
Star Wars Zero Company è l'erede di XCOM 2 Star Wars Zero Company è l'erede di XCOM ...
Sconti Amazon sui nuovi Google Pixel 11 ...
Dal RE Engine al 'motore generativo': il...
SpaceX mostra nuove immagini del lancio ...
Cina: CAS Space e Guangzhou Laboratory e...
Nikon Comedy Wildlife Awards 2026: le fo...
Samsung Galaxy A57 e A37 costano di più ...
Windows 11 26H2 taglia il consumo di RAM...
KINGPIN è tornato! Il re dell'ove...
CPU usata, ban ereditato: il caso del Ry...
Spunta un engineering sample di Ryzen 9 ...
iPhone 18 Pro, alcuni utenti segnalano s...
Android Auto: Gemini ascolta la domanda ...
OpenAI avvisa oltre 100 organizzazioni p...
Dall'AI alla SI: il rebranding di Trump ...
0patch offrirà supporto esteso pe...
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: 07:21.


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