mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c++
Titolo: Un costruttore che non costruisce

Questo e' il costruttore della classe Rect derivata da RECT:
    Rect::Rect(): top(t), left(l), right(r), bottom(b) {}
per tutti e quattro i membri mi da il seguente errore:
    error C2614: 'Rect' : illegal member initialization: 'top' is not a base
or member
    (lo stesso con left, right e bottom)
mentre se faccio:
    Rect::Rect(){
        top = t;
        left = l;
        ...
        }
il VC++4 non solleva opiezioni!
Mi sapreste dire il perche'?
Grazie,
    Al

OOOOOPS!!
...Ovviamente nel trascrivere mi sono dimenticato i parametri:
Rect::Rect( long t, long l, ...) ...;
Sorry

...

Perche`, esattamente come dice il messaggio d'errore,
"top" non e` ne` una base, ne` un membro, della tua
classe Rect; i ctor-initializer si usano per inizializzare
nel costruttore le basi ed i membri dell'oggetto che tu
stai costruendo, quindi, non puoi usare questo tipo
di sintassi per cio` che non e`, ne membro, ne` base.
Nel _corpo_ del costruttore, che viene eseguito
dopo che tutte le basi ed i membri sono gia` stati
costruiti, puoi anche fare assegnazioni a "cose"
che non sono, ne` membri, ne` basi, bensi`, ad
esempio e come in questo caso, membri pubblici
(o protetti) di una base (anche eventualmente
indiretta), e cosi` pure puoi fare assegnazioni ad
altre cose ancora, come variabili globali, variabili
statiche, e cosi` via.  L'insieme di cio` che puoi
inizializzare nel ctor-initializer, e l'insieme di cio`
a cui puoi assegnare nel corpo del costruttore,
sono dunque ben diversi:
    Insieme 1: basi virtuali e dirette, e membri
        (le reference *devono* essere inizializzate)
    Insieme 2: membri dell'oggetto, membri pubblici
        e protetti delle basi virtuali, dirette, indirette, 
        variabili globali, variabili statiche (le reference
        di per se *non possono* essere "assegnate",
        bensi`, "assegnare a una reference" significa
        in realta` assegnare a cio` cui essa si riferisce)
Se una tua classe eredita da un POD ("Plain Old 
Datatype" -- una struttura C, senza costruttori eccetera),
ovvero ha un POD come membro, vista la mancanza
di costruttori di quella base o membro, essa (e a maggior
ragione i suoi singoli membri) non puo` essere soggetta
a inizializzazione (in ctor-initializer-list); si puo` solo
ricorrere ad assegnazioni (nel corpo del costruttore).
Alex

Newsgroup: it.comp.lang.c++
Titolo: C e Visual C++

Salve a tutti; volevo sapere se qualcuno sia cos� cortese da spiegarmi come 
poter usare il compilatore
Ms Visual C++ in modo compilare semplici programmi C (ad esempio il 
famosissimo "Hello World").
Grazie a tutti per l'aiuto 

 Ms Visual C++ in modo compilare semplici programmi C (ad esempio il
immagino che abbia un Help. Oppure no?
c'e' sempre anche google.
Ciao Jack

HALL9000 ha scritto:

Da Msdn:"Compiler Command-Line Syntax"
http://msdn.microsoft.com/en-us/library/610ecb4h.aspx
l'opzione che fa a caso tuo � /Tc o /TC
http://msdn.microsoft.com/en-us/library/032xwy55.aspx
HTH
Newsgroup: it.comp.lang.c++
Titolo: Domanda su ifstream, eof & seekg...

Ciao, mi e' capitata una cosa che non m'era ancora capitato di fare.
Ho usato un ifstream per leggere un file, l'ho letto tutto con il solito
while che controlla il solito eof(), l'ho fatto un sacco di volte, solo che
a differenza di tutte le altre volte che l'ho usato, dopo la rilettura, piů
avanti, nel corso del programma lo volevo rileggere, nuovamente...
Cosě ho tentato un seekg(0,ios::beg), perň il file non mi risulta piů
leggibile... mentre invece se vado alla fine del file per poi leggere le sue
dimensioni con tellg e poi faccio il seek(0,ios::beg) me lo riavvolge... una
volta invece letto l'ultimo carattere e che scatta l'eof... per leggerlo ho
dovuto ricostruire un'altro ifstream perché il seekg non mi funzionava
piů... non c'č modo di "riavvolgere" lo stream anche dopo aver letto
l'ultimo carattere disponibile? O magari raprirlo in qualche modo ma senza
ricostruire un altro ifstream? Mi secca doverlo riaprire anche perché se lo
faccio dentro una classe alla quale e' stato passato l'ifstream gli devo
passare anche il nome del file e la cosa mi secca...
ciao e grazie!

la tua mail non e' molto chiara...
Mi sembra di capire che dimentichi di pulire failbit.
Prova ad usare file.clear() prima di riavvolgere.


 Prova ad usare file.clear() prima di riavvolgere.
Era proprio cosě!!!
Ciao e grazie ancora!

Newsgroup: it.comp.lang.c++
Titolo: BARSDI e Customizing Toolbar non funziona bene.


... togliete Ino dal mio nome per e-mail ...

Autorisposta (può interessare a chi avesse avuto il mio stesso
problema):
Alla risposta del messaggio TBN_GETBUTTONINFO bisogna sempre
restituire le informazioni del bottone della toolbar ORIGINALE (cioè
prima delle modifiche di spostamento).
Dal momento che avevo sviluppato l'applicazione in MFC utilizzando le
risorse per le toolbar ho risolto il problema costruendomi un array
contenente tutte le informazioni dei bottoni da passare poi al
messaggio citato prima.

Newsgroup: it.comp.lang.c++
Titolo: CTRL+ALT+DEL e pausa processi

Salve a tutti!
E' la prima volta che mi iscrivo a un newsgroup e pongo un quesito, e spero
tanto possiate aiutarmi.
Sto sviluppando un programmino in c++ Builder e dovrei fare in modo che ad
una determinata condizione appaia una finestra di dialogo che blocchi tutto
e non faccia accedere ad altre applicazioni ed a nessuna risorsa del
sistema, in pratica ciò che succede quando premiamo CTRL+ALT+DEL e appare la
finestra "Termina applicazione".
Ho già usato varie api (SystemParametersInfo,RegisterServiceProcess,ecc.)
per nascondere il processo, ma non so come impedire l'accesso agli altri.
Queste sono le caratteristiche di "Termina applicazione":
2 DIALOGEX 30, 22, 261, 158, 0
STYLE DS_SETFONT | DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | WS_CAPTION |
WS_POPUP | WS_VISIBLE
EXSTYLE = WS_EX_TOPMOST
CAPTION "Termina applicazione"
LANGUAGE LANG_ITALIAN, SUBLANG_ITALIAN
FONT 8, "MS Sans Serif", 0, FALSE
{
  LISTBOX, "", 3, 7, 5, 247, 92, WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
  DEFPUSHBUTTON, "&Termina operazione", 1, 5, 138, 80, 14
  PUSHBUTTON, "&Arresta il sistema", 4, 91, 138, 80, 14
  PUSHBUTTON, "Annulla", 2, 177, 138, 80, 14
  LTEXT, "ATTENZIONE: un'ulteriore pressione della combinazione
CTRL+ALT+CANC causerà il riavvio del computer. Tutte le informazioni non
salvate andranno perse.", 5, 7, 105, 245, 25
}
Vi ringrazio anticipatamente, Juan

 per nascondere il processo, ma non so come impedire l'accesso agli altri.
Usare RegisterServiceProcess() per nascondere un processo è anch'esso un
gran brutto trucco; questa API *non* serve per nascondere i processi, ma per
segnalarli al sistema come servizi (il fatto che vengano nascosti è solo un
effetto "bonus", non richiesto dalle specifiche della funzione). A parte il
fatto che non funziona su WinNT/2000/XP, se un giorno Microsoft si sveglia e
rilascia una patch per WinME in cui modifica il comportamento di tale API in
modo che i servizi non siano più rimossi dalla task list, il tuo programma
non funzionerebbe più come richiesto.
Mai usare gli effetti collaterali delle API se si vuole scrivere un
programma decente...
Saluti,
Marco

Chiedo scusa se sono stato OT, credevo di essere in icpw32... :))
Perdono!
    Marco

Newsgroup: it.comp.lang.c++
Titolo: Turbo c++

Qualcuno sa dirmi dove posso trovare una versione del Turbo c++ scaricabile
gratis

 gratis
Ce ne è uno a:
http://www.maxcode.com
sezione compilers.
Ciao,
Cecco
PS: sicuro della scelta?

gratis
Ti consiglio di evitare il Turbo C++... magari ce l'avrete anche a scuola,
si... ma ti conviene usare un altro compilatore per DOS. Il TC++ ormai è
fuori standard da moooooooolto tempo... ti consiglio il DJGPP o cmq se
chiedi qui te ne consigliano cmq uno migliore del tuo. Intanto il DJGPP è
ugualissimo al Turbo C++, cambia pochissimo e cmq i tuoi progetti funzionano
bene comunque (e se non vanno è colpa tua, non certo del compilatore, stanne
certo :) ).
Saluti dal Grande VEGETA PRINCIPE DEI SAIYA-JIN
     /\   /\
\_/   V   \_/
Newsgroup: it.comp.lang.c++
Titolo: Giudizio su un libro

Sono un neofita di C++, ho acquistato il testo dal titolo: C++ guida facile,
di Paul Snaith, ed. Tecniche nuove.
Io ho trovato il testo molto valido, e mi sono trovato bene, ma  leggendo i
messaggi su questo ng mi sono reso conto che alcuni testi semplici e
apparentemente facili in realtà celano parecchi errori e falsità. Non
essendo io in grado di rilevare tutto ciò, (anche se adesso sto leggendo il
materiale di Paolo Marotta su 
www.programmazione.it
) mi sarebbe utile un
parere da chi ne sa più di me. Ringrazio in anticipo e a presto!

...


Ti ringrazio, cercherň di seguire il tuo consiglio!

parere da chi ne sa più di me. Ringrazio in anticipo e a presto!
Ti ringrazio per la "preferenza", ma ti faccio notare che se il libro 
dice una cosa ed io un'altra... potrei anche essere io a sbagliare.
Quindi nel dubbio posta le tue domande... potresti trovare anche un
angolino nell'appendice nera :) del mio tutorial dedicata agli
scopritori di  bug seri!
Paolo
--------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
--------------------------------------------------

il mondo è bello xchè vario....
come sempre ci sono vari giudizi e varie preferenze.
Quello che conta, secondo me, è che tu ti sia trovato bene e abbia capito
8anche se solo al 90%) quello che hai letto perchè è scritto con un
linguaggio chiaro e "abbordabile". Spesso si sono levate critiche anche
verso altri autori in questo newsgroup (anche se magari molti errori sono da
scrivere alla traduzione) ma quello che conta veramente, e il mondo
universitario ne è prova, è che bisogna essere un buon insegnante più che un
eccellente tecnico per far capire qualcosa. Ora probabilemente ci sono libri
con pochi errori e scritti da eccelenti insegnanti, per esempio i libri
scritti da B. Stroustrup, ma prova un pò a leggerne qualcuno e dimmi un pò
come ti sembra.
In definitiva il tuo è un buon libro, perche TI piace e lo consiglieresti.
Altro non conta (almeno per te).
Lello Mele

Se mai dovessi scoprire "bug seri" (ne dubito), ma anche meno seri, ti farò
sicuramente sapere, cmq sono ancora troppo "in fasce"!
Grazie per l'attenzione e complimenti per il tuo lavoro.
Newsgroup: it.comp.lang.c++
Titolo: ! Dovrei cabiare libro o no ???

Salve,
Premetto che so programmare in VisualBasic, in Turbo Pascal ed in C.
Bene, volendo imparare il C++ mi misi alla ricerca di un libro completo:
linguaggio C++ ANSI /ISO standard + STL + Libreria di funzioni standard C +
Libreria di classi standard del C++.
Ho trovato tutto questo in un libro che si chiama : C++ : Guida Completa,
seconda edizione, Herbert Schildt. Il titolo originale e' : C++ : The
Complete Reference, third edition, Herbert Schildt, Osborne McGraw Hill.
Ho appena terminato la prima parte del libro che tratta del C. Lo
consideravo un buon "ripasso", assolutamente non approfondito, ma completo e
semplice, anche per chi si avvicina per la prima volta alla programmazione.
(Io lo imparai con il K&R, decisamente piu' impegnativo!)
Mentre stavo iniziando la parte sulle classi del C++, mi e' capitato di
leggere un articolo sui libri di Herbert Schildt, questo articolo non fa
altro che sparlare di questo autore, riportare un mucchio di errori presenti
nei suoi libri etc. Ho deciso quindi di fare una ricerca su quello che molti
che si definiscono gurus del C++ pensano dei libri di questo autore.
Bene, tralasciando i commenti della casa editrice e di molte persone che
sono partite da zero con questo libro (commenti positivi), tutti i commenti
di chi gia conosce il C++ e/o oppure conosce alla PERFEZIONE ( o forse dice
di ...) lo standard del C, sono MOLTO negativi.
Sarei molto grato se qualcuno sul NG, esperto di C/C++ che avesse mai avuto
a che fare con i libri di Schildt, mi potesse dare alcuni chiarimenti in
proposito.
Tra cui : in definitiva, mi conviene smettere di leggerlo e comprarmi un
altro libro di C++ o continuare. Possiedo gia' il libro di Stroustrup, ne ho
letto alcune parti, ma avevo intenzione di leggerlo per intero dopo aver
letto un "tutorial"  di C++. Infatti il libro di Stroustrup e', secondo me,
un ottimo Reference Book, ma non un altrettanto buon tutorial.
Nel caso mi consigliaste di cambiare libro,  onde non sbagliare ancora
volume, vi pregherei anche di consigliarmi un buon libro (anche senza parte
C).
Vi ringrazio anticipatamente e scusate se, me ne accorgo solo ora, mi sono
dilungato troppo a scrivere!
Alex

 Alex
Problema comune a chi condivide il nostro nome...:-).
Alex

Un'altra vittima innocente, anzi 2... c'e` pure l'albero
(e non considero gli animali che vi abitavano)!
Si e` spesso discusso di Schildt e della sua "duttilita`"
riguardo i vari linguaggi di cui ha scritto... Evita!!!!
Per migliori libri ti rimando alle faq su 
www.programmazione.it
Paolo
--------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
--------------------------------------------------

 
www.bruceeckel.com
 e scaricati "Thinking in C++", 2a edizione, 1a parte.
Ne esiste anche una seconda parte?
EMG

 Ne esiste anche una seconda parte?
Si`, mi pare che sia anch'essa gia` scaricabile -- la 1a parte e` quella
ormai giunta a versione "cartacea" (sara` anche in libreria a breve).
Alex

Grazie a tutti,
Alex
Newsgroup: it.comp.lang.c++
Titolo: alberi rb

Salve a tutti, ho un quesito sulla programmazione
di un albero rb.
come faccio a far visualizzare a schermo l'albero rb?
cioč io ho scritto il codice e compilandolo risulta tutto ok, ma adesso
volevo renderlo visivo, cioč vorrei che mi apparisse l'albero con i nodi
rossi e neri.
devo buttarmi su un altro linguaggio per fare ciň?
grazie


che cos'e un albero rb? o meglio cosa significa rb?

 che cos'e un albero rb? o meglio cosa significa rb?
"Un albero red-black è un albero binario di ricerca che soddisfa le
seguenti proprietà:
.       ogni nodo ha colore rosso o nero
.       ogni foglia è nera e contiene elemento null
.       se un nodo è rosso, entrambi i suoi figli sono neri
.       ogni cammino da un nodo ad una foglia nel suo sottoalbero
contiene lo stesso numero di nodi neri"
C. Demetrescu, I. Finocchi, G. F. Italiano, Algoritmi e Strutture Dati,
McGrawHill
...presumo.
ciao,
salvo

Newsgroup: it.comp.lang.c++
Titolo: Costruzione locale

Ho una domanda a cui non sono riuscito a trovare risposta con Google.
Supponiamo io abbia il seguente codice:
std::string TimeStamp;
std::istringstream TSSS(TimeStamp);
boost::posix_time::time_input_facet*input_facet=new 
boost::posix_time::time_input_facet("%Y%m%d %H%M%S");
TSSS.imbue(std::locale(TSSS.getloc(),input_facet));
boost::posix_time::ptime Time; TSSS>>Time;
input_facet devo deallocarlo io o ci pensera' ~std::locale?
Nel secondo caso e' corretto averlo allocato con new?
  bye & Thanks
	av.

 Nel secondo caso e' corretto averlo allocato con new?
E' corretto allocarlo con 'new'. Verrà invocato delete quando viene
distrutto l'ultimo oggetto std::locale che contiene un riferimento a quel
facet (v. [22.1.1.1.2]). Se questo non è il comportamento desiderato, è
necessario passare 1 all'argomento "refs" di std::locale::facet o
all'argomento corrispondente delle classe derivata.
Questo articolo mi pare spieghi tutto per bene:
 
 
http://www.ddj.com/cpp/184403785
Max
Newsgroup: it.comp.lang.c++
Titolo: Catena dei costruttori nelle classe derivate

Ciao a tutti,
stavo provando un po' di codice c++ quando mi sono trovato davanti ad
un caso un po' particolare:
Scrivendo un codice del genere:
class layer{
	public:
		layer();
		~layer();
		virtual void doJob();
	private:
		layer(layer& copyLayer);
};
class wndLayer : public layer{
	public:
		wndLayer();
		~wndLayer();
		void doJob();
	private:
		wndLayer(wndLayer& layer);
};
quando instanzio wndLayer mi viene richiamato il costruttore della
classe base, ma io non gli ho chiesto di fare una cosa del genere!!!
Come mai succede, visto che ho dichiarato virtual solamente il
distruttore?
Per inciso un comportamento del genere mi fa anche comodo, ma non era
responsabilità del programmatore definire un comportamento del genere?
E già che ci sono un'altra piccola domanda:
quando definisco che una classe derivata da un'altra, nel file
dell'intestazione ho la necessità di ridichiarare ogni metodo della
classe base? Il mo dubbio sce dal fatto che il buon g++ mi segnalava il
metodo wndLayer::doJob() non definito, quando ne specificavo il corpo
nel file .cpp.
Si vede che sono niubbo? ;-)
utilizzo una suse 9.2 con g++ 3.3.4.
Saluti e baci
Andrea

 
se lo ri-dichiari nella classe derivata poi lo devi anche definire, ma 
se non lo dichiari non c'è ne bisogno.
-- 
bash: impossibile: command not found

ciao e grazie della risposta.
Il distruttore della classe base è dichiarato virtuale, devo farlo
anche per la derivata?
Per il metodo doJob, avevo bisogno di sovrascriverlo, sono stato
obbligato a ridichiararlo nella classe derivata.
ot: ma capita solo a me, di scrivere su un newsgroup e sembrare
un'analfabeta? :-) vedo miei errori da 2 in pagella ;-)

 
eh, la fretta...


La fretta ha colpito ancora: ho ricopiato un frammento di una bozza e
non quanto compilato.
Ho cannato persino il copia&incolla...amen
e comqunque grazie ancora per le dritte
ciao ciao

Newsgroup: it.comp.lang.c++
Titolo: ereditare array statico

salve a tutti,
ho una classe padre così definita
class padre
{
	...
	enum { MAX = 1024};
	int store[MAX];
};
vorrei ereditare da questa classe
la seguente
class figlio
{
	...
 
	enum {MAX = 2048};
	int store[MAX]
}
in altre parole avrei bisogno di una classe figlio del tutto identica
alla classe padre, ma che lavorasse su un array *statico* (store) di dimensioni
maggiori. E' possibile risolvere questo problema? E come?
grazie.
Francesco Picasso
http://francesco.netsigners.com

 
http://francesco.netsigners.com
Prova cosi':
template <int N = 1024 >
class padre
{
public:
enum { MAX = N };
int store[N];
};
template <int N = 2048>
class figlio : public padre<N>
{
public:
};
e poi dichiari una variabile f di tipo figlio nel seguente modo:
figlio<> f;
non so se era questo che volevi ottenere o ti servivano 2 array statici su
entrambi le classi ?
Ciao
Gaetano.
-- 
Posted from 
dell-01.mm.eutelsat.org
 [194.214.173.17] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG
Newsgroup: it.comp.lang.c++
Titolo: percentuale

Ciao forse questa domanda e' OT ma ve la chiedo cmq abbiate pazienza.Vorrei
sapere come posso calcolare una data percentuale di un numero in modo
differente dal dividere il numero per 100 e moltiplicarlo per la
percentuale(es:per il 9% di 5000 fare:5000/100*9).
Grazie per la cortese attenzione.
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 percentuale(es:per il 9% di 5000 fare:5000/100*9).
Altri sistemi? Difficile: dovresi trovare _altre definizioni_ di 
percentuale.
Forse puo' esserti utile notare che 5000/100*9 = 5000* (9/100).
Moltiplicare per 0,PERCENTUALE.
9% di TOTALE = TOTALE * 0,09.
20% di Totale = totale * 0,20
Cmq. Sei moooolto OT :)
matteo!

 
Oppure puoi dividere per 100 e sommare in un ciclo per un numero
di volte pari alla percentuale (bella questa, eh???)


Grazie,la tua seconda idea mi ha incuriosito ora la provo^_^


 percentuale(es:per il 9% di 5000 fare:5000/100*9).
Ecco alcune formule alternative:
5000*9/100
5000*(9/100)
(9/100)*5000
-- 
     Carlo Milanesi
 
http://digilander.libero.it/carlmila

 percentuale(es:per il 9% di 5000 fare:5000/100*9).
Ora che ci penso, secondo me, essendo il C++ turing-completo, dovrebbe 
essere facile dimostrare che esistono infiniti modi di calcolare una 
isngola funzione... teorema del punto fisso di Kleene, direi ;)
-- 
Mat/tia Belletti - Undergraduate student @ 
cs.unibo.it
ICQ: 33292311    - email: 
mbel...@cs.unibo.it
IRC: RedGlow     - site(s): 
http://www.cs.unibo.it/~mbellett
Linux registered user 299762 @ Linux registered machine 213003

Newsgroup: it.comp.lang.c++
Titolo: CGI

Qualcuno mi sa dire se esiste un sito che ti insegna i CGI?
Grazie mille.
--
--------------saluti--------------------------
E-Mail: 
mar...@geocities.com

 ha scritto nel messaggio
news:8gdmsq$1hf$1...@nslave1.tin.it...


>Qualcuno mi sa dire se esiste un sito che ti insegna i CGI?
www.html.it
 e relativi link.
Ciao
--
- Carlo -
BSSoftware Tips Mailing-List Support


Il C++.

Newsgroup: it.comp.lang.c++
Titolo: C++ Server side

E' possibile fare in modo che un utente collegandosi ad una pagina php 
possa eseguire un programma scritto in c++?

 possa eseguire un programma scritto in c++?
Questo riguarda PHP, o il server che utilizzi - in nessuno dei due casi 
si parla di C++ standard, ergo sei OT.
-- 
Mat/tia Belletti - Undergraduate student @ 
cs.unibo.it
ICQ: 33292311    - email: 
mbel...@cs.unibo.it
IRC: RedGlow     - site(s): 
http://mbellett.web.cs.unibo.it/
Jabber: RedGlow  - Linux registered user 299762 @ machine 213003
Newsgroup: it.comp.lang.c++
Titolo: Acquistare una licenza minimale per VS 6

Ciao,
ho letto sul sito della microsoft che esistono vari tipi di licenze per
Visual Studio.
A me interesserebbe una licenza che mi permetta di vendere software fatto da
me come azienda, utilizzando solo il C++ e MFC.
Come trovo informazioni sulla licenza da scegliere? C'č qualcuno che puň
aiutarmi?
Grazie!
Piero

 aiutarmi?
Qui sei stra-OT: su questo NG si parla di C++ standard.
Prova su it.comp.programmare.win32... anche se forse, tecnicamente, 
saresti OT anche li'.
(anyway: non puoi chiedere alla microsoft stessa? :P)
-- 
/**
  * Mattia Belletti - Undergraduate student @ 
cs.unibo.it
  * ICQ: 33292311   - email: 
mbel...@cs.unibo.it
  * IRC: BluShine   - site(s): 
http://cs.unibo.it/~mbellett
  * Linux registered user 299762 @ Linux registered machine 213003
  */

Newsgroup: it.comp.lang.c++
Titolo: ricerca corsi su Intenet

Salve,
Sono uno studente di informatica e mi piacerebbe molto approfondire la mia
conoscenza dei linguaggi e dei vari paradigmi di programmazione esistenti.
Mi chiedevo se in rete esistano siti dai quali sia possibile scaricare corsi
( gratuiti ), articoli o qualsiasi altro tipo di materiale utile a farsi una
cultura più "concreta" rispetto alle ( seppur  fondamentali ) conoscenze di
base che appprendo seguendo i vari corsi all'università.
Convinto che la  preziosa collaborazione della Grande Rete non si farà
attendere vi saluto e vi ringrazio.
C I A O !!
Michele Aprile

Ciao,
    dai un'occhiata all'area Tutorial di C++Warriors (l'URL e' + sotto).
Poi guarda anche su 
http://games.eden.it/tcp
 
A presto :-) 
Marco Abis su IRCnet #C++Warriors
http://welcome.to/C++Warriors
 interamente dedicato al C++
ca...@technologist.com
--
Posted from 
ro...@ats.it
 [195.62.227.1]
via Mailgate.ORG Server - 
http://www.mailgate.org

voleva dire 
http://come.to/tcp
"Marco Abis" ha scritto nel messaggio
<004901be6b20$d6bba5e0$ddeb3ec3@none>...


...

Newsgroup: it.comp.lang.c++
Titolo: [Codice]Visual C++ e Standard C++

Spero di non diventare il vostro incubo peggiore, ma ogni giorno ne capita una ! :-)
Il codice di seguito riportato ricalca un esempietto del Lippman riguardo al sovraccaricamento
dell'operatore '<<'. 
p.h:
#include <iostream>
#include <string>
using namespace std;
class Prova {
friend ostream& operator<<(ostream &os,Prova &p);
public:
  Prova(): s("prova") {}
  ~Prova() {}
private:
  string s;
};
ostream& operator<<(ostream &os,Prova &p)
{
  return os << p.s << endl;
}
p.cpp:
#include "p.h"
int main(void)
{
  Prova x;
  cout << endl << "Questa e' una " << x;
  return 0;
}
Compilandolo con il g++ non ho nessun problema, ma con il Visual C++ 6 mi
vengono segnalati 2 errori:
"C:\WINDOWS\Desktop\IngSoft\p.h(20) : error C2248: 's' : cannot access private member declared in
class 'Prova'
        C:\WINDOWS\Desktop\IngSoft\p.h(15) : see declaration of 's'
C:\WINDOWS\Desktop\IngSoft\p.cpp(6) : error C2593: 'operator <<' is ambiguous"
Mi chiedo perche' il Visual C++ mi dia piu' errori del g++. E' forse meno aderente allo Standard  ?
Grazie per la vostra disponibilita'.
Federico

 C:\WINDOWS\Desktop\IngSoft\p.cpp(6) : error C2593: 'operator <<' is ambiguous"
Hai provato a mettere la dichiarazione di operator << nella sezione
public?
EMG


La definizione di una funzione / classe friend può essere
messa dove si vuole (public, protected o private).
Manlio Perillo

 Grazie per la vostra disponibilita'.
Io ho appena compilato il tuo esempio con il Visual C++ 6.0 e non ho avuto
nessun problema.
Newsgroup: it.comp.lang.c++
Titolo: operator== definito per default

Ciao a tutto il ng.
Finalmente, dopo mesi, ritrovo un po' di tempo per seguire il ng.
Ho una domanda forse un po' banale.
Perche' l'operatore == non e' definito per default, cosi' come il
costruttore di copia e l'operatore di assegnamento?
Paolo Galassi

 wrote in message
news:99104510...@anc-srv.fastnet.it...

In generale niente e' predefinito se non serve per compatibilità all'indietro.
Vengono definite percio' quelle "operazioni" che servono per implementare la
sintassi generale delle strutture del C (infatti una classe e una struttura sono
la stessa cosa in C++).
Ovvero sono possibili per default:
// dichiarazione di una variabile
// default costructor "T()"
T v;
// dichiarazione con inizializzazione
// copy constructor "T(const T&)"
const T w=v;
// copia
// copy operator "T& operator=(const T&)"
v=w;
// indirizzo
// "T* operator&()"
// "const T* operator&() const"
T* p=&v;
const T* cp=&w;
// passaggio parametro
// copy constructor "T(const T&)"
void f(T);
// ritorno valore
// copy constructor "T(const T&)"
// spesso implica anche copy operator
T f();
Inoltre sono ammesse la distruzione (ovvio) e la creazione e la distruzionae
dinamiche (ovvero l'uso di new e delete).
Questo e' sostanzialmente il set di operazioni che la sintassi del C ammette per
la definizione:
typedef struct {
    //...
} T;
e che pertanto il C++ supporta per default (pena incompatibilità con il C).
I vari operator== operator!= operator* operator[] operator() e gli altri non
sono "implementati per default" perche' non fanno parte della semantica di una
struttura C.
--
Andrea Ferro
---------
Brainbench C++ Master. Scored higher than 97% of previous takers
Scores: Overall 4.46, Conceptual 5.0, Problem-Solving 5.0
More info 
http://www.brainbench.com/transcript.jsp?pid=2522556

fanno parte della semantica di una struttura C.
Grazie, ora ho capito.
Pero' l'implementazione per default di == (e, per simmetria, !=) non
avrebbe impedito la compilazione di un sorgente C e nel contempo
avrebbe risparmiato la scrittura di (perdonate il termine) "banali"
operator== che non aggiungono nient'altro al confronto membro a
membro.  E' solo un'opinione.
PG

 wrote in message
news:99112904...@anc-srv.fastnet.it...

Non la impedirebbe. Ma non e' necessaria.
I "puristi" vorrebbero anche che fossero completamente rimosse le
implementazioni di default che ci sono (default costructor, destructor etc).
Il problema e' che troppo codice preesistente (non solo C) non verrebbe piu'
compilato.

Newsgroup: it.comp.lang.c++
Titolo: Manipolatore setw() e stringhe

Cari amici, č normale che il manipolatore setw() non funzioni con il
tipo std::string? Esempio:
#include <iostream>
#include <iomanip>
int main()
{
    std::string s( "Prova di stringa" );
    cout << setiosflags( ios::left )
         << setw( 30 ) << nome << '*'
         << setw( 30 ) << nome.c_str() << '*'
         << endl;
}
Il manipolatore setw() funziona correttamente solo stampando tramite il
metodo std::string::c_str(). Come mai?
EMG
PS. Il compilatore č il DJGPP.

 metodo std::string::c_str(). Come mai?
Perche` std::ostream::operator<<(const char*) e
operator<<(std::ostream&, const std::string&) sono definiti in
modi diversi.
"If n < width(), then the function also inserts a repetition of
width() - n fill characters" e` specificata per il primo, ma
non per il secondo (almeno, non ne trovo traccia nello standard).
Se in effetti non vi e` traccia nello standard, allora puo`
essere considerato un difetto di quest'ultimo (e si puo`
sottoporre un "defect report", ma non conosco l'esatta
procedura da seguire); se invece lo standard ne parla, allora
e` un difetto dell'implementazione che stai usando.
Alex
Newsgroup: it.comp.lang.c++
Titolo: iostream: valori numerici?

Salve, uso VC++ 4.2, ed ho la necessita' di scrivere/leggere differenti tipi
di variabili; a tal fine vorrei utilizzare gli operatori stream '<<' e '>>';
se ho:
char PIPPO[nn]   // nn e' definito a runtime e puo' cambiare
long PLUTO
int  DONALD
c'e' un modo per scrivere semplicemente:
 myStream << PIPPO << PLUTO << DONALD
e dopo leggere con:
 myStream >> PIPPO >> PLUTO >> DONALD
lo stream che vorrei dovrebbe automaticamente scrivere PIPPO[] finche' non
raggiunge \0, e fare la stessa cosa in lettura.
Penso che questa caratteristica sia gia' presente in qualche stream del c++,
solo che io non lo trobo! Possibile che devo ridefinirmi gli operatori '<<' e
'>>'?? Penso che questa mia necessita' sia comune a molti.. o no?
Grazie.
MATRO
http://www.geocities.com/SiliconValley/8383
****** WARNING!! ******
To reply, remove the "*" from the email address.

Matro wrote:
  Salve, uso VC++ 4.2, ed ho la necessita' di scrivere/leggere
  differenti tipi
  di variabili; a tal fine vorrei utilizzare gli operatori stream '<<'
  e '>>';
  se ho:
  char PIPPO[nn]   // nn e' definito a runtime e puo' cambiare
  long PLUTO
  int  DONALD
  c'e' un modo per scrivere semplicemente:
   myStream << PIPPO << PLUTO << DONALD
  e dopo leggere con:
   myStream >> PIPPO >> PLUTO >> DONALD
  lo stream che vorrei dovrebbe automaticamente scrivere PIPPO[]
  finche' non
  raggiunge \0, e fare la stessa cosa in lettura.
  Penso che questa caratteristica sia gia' presente in qualche stream
  del c++,
  solo che io non lo trobo! Possibile che devo ridefinirmi gli
  operatori '<<' e
  '>>'?? Penso che questa mia necessita' sia comune a molti.. o no?
Anche io ho avuto lo stesso problema in passato, e l'unica soluzione che
ho trovato č stato creare una gerarchia di classi con base classes con
funzioni puramente virtuali che definivano gli operatori, cosě da
costringermi a ricordarmi di farli.
Insomma, sě credo proprio che ti dovrai mettere a lavorarci sů.
(tra parentesi le notizie che hai dato non sono troppo precise! :-)
--
-------------------
Giulio Argiolas
-------------------

(tra parentesi le notizie che hai dato non sono troppo precise! :-)
Sigh... e certo che non le ho date precise... pensavo che era una cosa cosi'
ovvia, che mi stavo perdendo in un bicchier d'acqua :) che era scontato
spiegare... e invece.... MAH!


Ciao
        penso che si possa fare quello che dici usando la classe
strstream
(<strstream.h>).
In pratica si comporta come un normale stream di i/o soltanto che i dati
sono memorizzati in un
buffer di caratteri. Io l'ho usato per creare dei nomi di file
"incrementali" (cioe' partendo da una stringa base = "pippo" per es.,
creavo "pippo1", "pippo2", ...).
Sul momento non ricordo bene e non ho modo di verificare, ma ti so dire
qualcosa al piu' presto.
Comunque sono sicuro del nome della classe strstream che, secondo il
libro da me usato, e' standard.
Speso di esserti stato utile
        Alessandro Strazzari
Newsgroup: it.comp.lang.c++
Titolo: 3dstudio & c++

Salve a tutti
Ho una discreta conoscenza del 3dstudio max, e qualche nozione di C++:
si possono combinare le due cose per creare un semplice giochino?
Se si, come e/o con quale software aggiuntivo?
Grazie anticipatamente a tutti.

...

Certo che è possibile combinare le due cose, ad esempio con l'SDK delle
DirectX c'è un convertitore per convertire i file 3ds in file .x che possono
essere importati direttamente nel gioco. Se invece non usi le librerie
Micro$oft allora o usi uno dei tanti convertitori presenti per la rete
oppure te ne scrivi uno personalizzato. Se sei alle prime armi ti consiglio
di procurarti l'SDK delle DirectX 5.0 ed impratichirti con il Retained Mode
(un engine 3d gia pronto) che non richiede conoscenze particolarmente
approfondite nel campo della programmazione 3d.
Ciao e buon divertimento!!
P.S.
Se ti interessa sto lavorando ad un motore 3d ed ho bisogno di grafica se
vuoi collaborare: 
mi...@lert.it

Newsgroup: it.comp.lang.c++
Titolo: Come faccio a pilotare uno scanner?

Devo realizzare un semplice programma di che acquisisca immagini da scanner,
le salvi su file, e copi il path di destinazione  in un Database. Non riesco
a trovare informazioni su come  si "piloti" lo scanner !!!!
Ci sono librerie specifiche?
grazie e a presto.
gion...@libero.it
cip...@tiscali.it

 a trovare informazioni su come  si "piloti" lo scanner !!!!
Sei OT, ma comunque ti dò qualche dritta.
Se sei sotto windows, c'è l'interfaccia TWAIN, che credo esista anche su MAC
e forse forse anche sugli Unix. Credo che si possano trovare informazioni in
rete, anche se credo che converrebbe usare librerie già sviluppate a poco
prezzo o gratuite, dato che la gestione non è proprio semplicissima.
C'era anche un articolo su qualche rivista di qualche mese fa, credo
Computer Programming. Se proprio serve, scrivimi in e-mail, che la cerco,
passo allo scanner l'articolo e te lo spedisco, il tutto nel giro di massimo
un paio di mesi (eh, si! Non ho molto tempo e voglia di farlo, oltretutto
sospetto non sia proprio legale...).
--
Alessandro Monti

Newsgroup: it.comp.lang.c++
Titolo: vettori char

Hola a tutti i boys della NG
ho un problemino
ho costruito una rubrica in C
che funziona tranne per un piccolo particolare
quando inserisco l'indirizzo, x esempio Via Tal dei Tali
lui memorizza solo Via. e lascia tutto il resto.
capisce lo spazio come fine stringa.
come devo fare?
struct Rubrica
    {
    long Posizione;
    char Nome[20];
    char Cognome[20];
    char Tel[20];
    char Indirizzo[50];
    };
struct Rubrica Record;
Ciao a tutta la NG

 tutto il resto. capisce lo spazio come fine stringa. come devo fare?
Se non posti almeno un po'di codice come si fa ad aiutarti?
cmq,al posto di cin>> prova std::cin.get()
Newsgroup: it.comp.lang.c++
Titolo: Programmare la vga

Una volta, tanto tempo fa c'era un sito per la programazione della vga, ora
non c'è più, avete alternative?

Ciao,
    trovi un corso ormai alla quarta puntata sulla programmazione grafica in
C/C++ nell'area ad esso dedicata su 
www.programmazione.it
Ti consiglio inoltre di visistare 
http://gpi.eden.it
A presto :-)
Marco Abis
http://www.programmazione.it
 Il sito Italiano di riferimento per lo
sviluppatore
ab...@programmazione.it
Newsgroup: it.comp.lang.c++
Titolo: Delucidazione sui template

Mi serve una piccola delucidazione sull'utilizzo dei template.
Ho creato questa classe template per gestire un albero binario
-------------------------------------------------------------
template <class T>
class Albero
 {
  struct nodo
   {
    T val;
    nodo* sx;
    nodo* dx;
   };
  nodo* albero;
  ...
  ...
 };
-------------------------------------------------------------
Una delle funzioni della classe(inserisci_foglia()) deve aggiungere un 
figlio alla foglia scelta dall'utente.
Per realizzare la funzione ho bisogno di passare due parametri di tipo 
generico T:
 - T val rappresenta il nuovo figlio da inserire;
 - T dove indica a quale foglia aggiungere il figlio;
La funzione per far ciò è la seguente:
-------------------------------------------------------------
template <class T>
void Albero<T>::inserisci_foglia(T val, T dove, nodo* albero)
 {
  if (albero->sx != NULL)
   inserisci_foglia(val, dove, albero->sx);
  if (albero->dx != NULL)
   inserisci_foglia(val, dove, albero->dx);
   if (albero->val == dove)
    {
    albero->sx = new nodo;
    albero->dx = NULL;
    albero->sx->val = val;
    albero->sx->sx = NULL;
    albero->sx->dx = NULL;
   };
 };
-------------------------------------------------------------
Pensavo che una funzione del genere fosse lecita, in quanto, T è in entrambi 
i casi o int o char (a seconda della scelta dell'utente), ma invece mi 
compaiono una serie infinita di errori.
Come posso fare per realizzare ciò che pensavo fosse lecito?
Come posso utilizzare inserisci_foglia con due parametri di tipo T, senza 
modificare la  classe template?
Spero di essere stato abbastanza chiaro... 

 
Questa definizione e' lecita!
Che tipo di errore ricevi?
Probabilmente stai dichiarando il template in un file .h e i suoi metodi 
in un file .cpp. Questo non va bene.
Puoi optare per le seguenti scelte
1. Metti tutto nel file .h
2. definisci tutti metodi implicitamente in-line all'interno della classe.
//esempio per (1)
//file mytemp.h
template<class T>
class mytemp
{
public:
    //...
    void miometodo ();
    //...
};
template<class T>
void mytemp<T>::miometodo ()
{
    //do stuff
}
//----------- fine file mytemp.h
--------------------------
//esempio per (2)
//file mytemp.h
template<class T>
class mytemp
{
public:
    //...
    void miometodo () //metodo implicitamente in-line
    {
       //do stuff
    }
    //...
};
Spero ti aiuti
====
Gianni

 modificare la  classe template?
L'uso del template e' corretto, purche' nella classe sia contenuta la 
seguente dichiarazione public:
   void inserisci_foglia(T val, T dove, nodo* albero);
e purche' tu abbia dichiarato la variabile o macro NULL, che non fa 
parte del linguaggio.
Per capire che cosa non ti funziona in compilazione, si dovrebbe leggere 
almeno il primo dei messaggi d'errore emessi dal compilatore.
-- 
     Carlo Milanesi
 
http://digilander.libero.it/carlmila

Grazie, ho risolto il problema
Newsgroup: it.comp.lang.c++
Titolo: NIUBBO - C++ su Linux e threads

 g++ -Wall -O2 -o minisym -main.cpp
ho provato a lanciare il programma, ma la consolle non lo trovava ( minisym 
dalla directory dell'eseguibile)
allora l'ho lanciato col doppioclick ( windows style, yeeeah !)
ho notato che:
1) non si è aperta nessuna consolle,
2) non è stato stampato nessun output (c'erano molte cout)
3) dopo un pò il sistema ha iniziato a lamentarsi che non poteva fare fork() 
(infatti il mio programma faceva delle fork(), quindi, effettivamente è 
stato lanciato :).
ora ho un bel pò di perchè x la testa:
1) perchè quando ho digitato minisym da consolle, non è stato trovaro 
l'eseguibile?
2) perchè non si è aperta nessuna consolle al doppioclic?
3) gli output della cout, dove sono finiti?
4) perchè linux non ha terminato il programma?
5) come si fa a vedere quali processi girano sul SO?
6) se volessi forzare un processo a terminare, come faccio?
7) dove posso trovare un buon tutorial per la programmazione sotto linux?
8) posso evitare che testando un programma che fa fork(), rischi di 
sputtanare linux?
9) esiste un IDE come il Dev-C++ sotto linux (di quelli che fai clic-click e 
ti compila tutto? :)? che mi consigliate voi?
grazie a tuttti! :)
DanZz
-- 
--------------------------------------
http://gnaskuru.altervista.org
the 
Gn.AS.ku.RU
. project HOME
-------------------------------------- 

grazie,
ho smanettato un pň col man, devo dire che č figo,
xň c'č un problema: funziona solo se sai cosa cercare!
cmq, ho risolto quasi tutti i problemi...
(vedi nuovo post :)
Grazie,
DanZz 

 e ti compila tutto? :)? che mi consigliate voi?
Questo me lo chiedo anche io.... i vari kdevelope anjuta... so carini ma
fanno troppe porchette sui sorgenti secondo me... 
Aggiungono 20mila file al progetto che alla fine non servono... 
 
-- 
(togli NOSPAMME per rispondemi in privato)

 xò c'è un problema: funziona solo se sai cosa cercare!
funziona se 1) sai leggere e 2) sei in grado di capire quello che
leggi.  prova ad applicare queste due regolette all'output di "man
man", specialmente quello che segue "-k".
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Dept. of Physics, Univ. of Padova, Italy              ROT13: 
ybe...@cq.vasa.vg

bhé, dato che man si usa facendo
     man [param-list] qualcosa
è difficile che se non sai nemmeno il nome di quel qualcosa, tu riesca a 
trovare ciò che cerchi (problema dell' IR :) .
e questo è vero anche se sai xfettamente l'inglese...
cmq grazie x il -k   ( cos'è? mo provo! :)
ciao, DanZz
Newsgroup: it.comp.lang.c++
Titolo: Operatore di incremento postfisso

Torno forse su un argomento già discusso, ma la cosa mi lascia parecchio 
perplesso.
Ho recentemente scoperto la differenza fra ++i e i++. Non mi è però ben 
chiara la precedenza di tali operatori. O meglio, quella di ++i 
(incremento prefisso) mi pare chiara: il libro che seguo (Capper, 
Introduzione a C++) lo mette al pari del meno unario. Però non 
differenzia, e dato che l'incremento in i++ viene svolto alla fine, non 
sarebbe giusto differenziare e dire che l'operatore di incremento 
postfisso è uno di quelli a precedenza minore? Ad esempio più basso della 
somma...

Giano ha scritto:

La precedenza non ti dice QUANDO deve venire eseguita un'operazione, ma 
a quali parti di una espressione si applica.
Da quello che dici si dedurrebbe che:
	x+y++
dovrebbe venire interpretato come
	(x+y)++
che non ha nessun nesso con il fatto che l'operatore postfisso 
incrementi prima o dopo che il suo argomento viene valutato.
Invece basta ricordare che gli operatori unari hanno tutti precedenza su 
quelli binari.
E.

 a quali parti di una espressione si applica.
Grazie per la spiegazione.
Newsgroup: it.comp.lang.c++
Titolo: Visual C++ e OpenGL

Ciao a tutti, sono Luca, uno studente di ingegneria; sto preparando l'esame
di informatica grafica e devo utilizzare OpenGl...non so assolutamente come
fare per aprire un nuovo progetto con OpenGl utilizzando VisualC++...ho
bisogno di esercitarmi a programmare utilizzando la libreria OpenGl. Come
devo fare per aprire un mio progetto...scrivere il mio "programmino" di
grafica...e vederlo "eseguito" sul mio computer?...ci sono una serie di
impostazioni da fare (links...ecc.ecc...) ma io non ho mai programmato
utilizzando l'interfaccia di VisualC++...anche se conosco il Linguaggio
C++...mi aiutate per cortesia?...non so a chi rivolgermi..sono tutti in
vacanza!!!!!....grazie e ciao.
Luca





Se vai qui 
http://nehe.gamedev.net
 trovi tante 
informazioni su come usare OpenGL, anche con il Visual C++: per imparare SUL 
Visual C non saprei che dirti. 


 


Buone vacanze ;-))

Newsgroup: it.comp.lang.c++
Titolo: Tipi di dati

La mia domanda rigurda i tipi di dato:
int a = 2000000000; Questo tipo di variabile (il mio compilatore la
rappresenta a 32 bit) viene accettata dal compilatore.
long double b  = 200000000000000; Questo tipo di variabile mi viene
rappresentata su 96 bit. Il problema sta che immettendo questo valore il
compilatore mi comunica che c'è un errore del range int. Per ovviare al
problema scrivo il numero seguito da .o.
ad esempio: long double b = 2000000000000.0;
Ma non riesco a capire se sbaglio io a scrivere dati integer in un double o
è  un bug del compilatore.
--
-----------------------------------------------------------------
Francesco Fassi
frances...@libero.it
-----------------------------------------------------------------

Per definizione un numero scritto senza separatore e cifre decimali e'
una costante intera che viene convertita a long double quando
inizializzi la tua variabile. E' probabile che il compilatore ottimizzi
il tutto evitando la conversione a runtime, cio' non toglie che la tua
costante intera deve comunque essere valida.
Ciao,
Nicola

Newsgroup: it.comp.lang.c++
Titolo: Vettori STL e classi template

Salve a tutti,
              scrivo per sapere secondo voi il metodo piu` elegante
per realizzare quanto segue:
1) ho definito una classe template Foo pure abstract
2) derivo delle sottoclassi da Foo
3) creo un vettore STL di puntatori ad oggetti Foo 
la sintassi delle operazioni mi e` quasi completamente chiara ad
eccezione del punto 3). Prima di tutto e` possibile definire un 
vettore di oggetti di una classe template.
Ringrazio anticipatamente per ogni vostro aiuto.
Ale

 vettore di oggetti di una classe template?
Dipende da cosa intendi. Puoi usare un vector in un contesto, come una
funzione o una classe template, in cui il tipo di Foo<> dipende da qualche
parametro... ad es:
   template< class T >
   void  push_foo_into_vector( Foo<T>* p, std::vector< Foo< T > * > & v )
  {      v.push_back(p);
  }
...oppure puoi instanziare un vector contenente puntatori a una ben precisa
realizzazione di Foo<>, ad es:
 std::vector< Foo< std::string > * >;
... ma non puoi avere un vector di puntatori a Foo tout-court.
Max
Newsgroup: it.comp.lang.c++
Titolo: Funzioni C da sfruttare in C++

Salve a tutti,
Volevo sapere se c'era il modo (e come) di sfruttare delle funzioni scritte
in C in una classe scritta in C++.
Magari con un piccolo esempio.
Grazie a tutti
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 
basta questo:
UsaC.hpp:
extern "C"	{
#include "header_funzioni_c.h"
}
class UsaC
{
public:
	int f()
	{
		return funzione_scritta_in_c(parametri);
	}
};
-- 
MSN: sirpsycho_78 -at- hotmail dot com

 ha scritto:

vediamo se ho capito.
Io ho quattro File funzionale.h, funzionale.c, applicativo.h e
applicativo.cpp.
In applicativo.cpp metto:
UsaC.hpp:
extern "C" {
#include "funzionale.h"
}
class UsaC
{
public:
	void function()
	{
		return funzione_scritta_in_c_dentro_funzionale_c(parametri);
	}
};
1° Domanda: Ma al compilatore devo dire di compilare anche funzionale.c?
2° Domanda: Io stò utilizzando Dev-c++ e come compilatore utilizza g++, g++
comila anche codice c?
Grazie


 
penso di no (dovresti usare gcc per il codice C) ma non ne sono affatto 
sicuro, fai riferimento alla documentazione.


 sicuro, fai riferimento alla documentazione.
Certo che si !
Compila anche codice C MingW (o la versione linux Gcc)
Bye,
--
Carmine ( 
pikachu...@gmail.com
 (Togli la scritta NOSPAM) )
Webmaster di The Total Site (
http://www.tekkentag.altervista.org/
 )
Webmaster di SceptilePage (
http://www.sceptilepage.altervista.org/
 )
Account Messenger: 
thetot...@msn.com
MyBLOG (NEW!!) 
http://spaces.msn.com/members/itanet/

 sono affatto sicuro, fai riferimento alla documentazione.
Si.
Infatti, gcc e g++ son lo stesso programma, e tutti i due
compilarà e C e C++, seguendo il nuome della file. La sola
differenza è, che se il programma è stato invocato con g++,
agiunge automaticalamente le libraries di cui ha bisogna C++.
--
James Kanze                                           GABI Software
Conseils en informatique orientée objet/
                   Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, 
+33 (0)1 30 23 00 34
Newsgroup: it.comp.lang.c++
Titolo: CHeaderCtrl come visualizzare bitmap

Ho realizzato un'applicazione che mostra una finestra derivata da una
CListView, ma vorrei che nella header della ListView io possa inserire delle
bitmap nei buttons delle colonne.
Ho provato,  ma le mie conoscenze non mi hanno portato ad alcunche'.
Esiste qualcuno che ha gia' fatto un'applicazione del genere???
Grazie a chi mi rispondera'.
Ciao.

bitmap nei buttons delle colonne.
Ci sono tanti modi, ma il piu` semplice e` chiamare sul
CHeaderCtrl la funzione-membro SetItem, per cambiare
le caratteristiche dei suoi vari item (il cui conteggio
ottieni con la funzione-membro GetItemCount); la
SetItem, oltre all'indice 0-based dell'item, prende un
puntatore a una struttura HDITEM.  Quest'ultima ha
un campo mask, che setterai a HDI_BITMAP, un
campo hbm, dove metterai l'HBITMAP che desideri,
e un campo ftm, dove metterai HDF_BITMAP (se vuoi,
in or con HDF_CENTER per centrarla, HDF_LEFT per
allinearla a sinistra, HDF_RIGHT per allinearla a destra).
L'hai provato questo schema, il piu` semplice?  Ti da`
problemi...?  Prima di suggerire vari schemi piu`
avanzati, ottimizzati, ecc, che magari funzionano solo
con le versioni piu` recenti degli header-control, io
direi anzitutto di provare questo... facci sapere!  (Sul
gruppo, per favore, NON nella mia mailbox, grazie!).
Alex