mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c++
Titolo: Sono alle prime armi,domande su i puntatori?

Buongiorno a tutti, sto incominciando ad imparare C++, e volevo sapere da
voi se quello che dirò trà poco è corretto o no,incominciamo:
Per dichiarare un puntatore si fa cosi (int *p) e fin qui tutto chiaro
ma nel mio libro ho visto molte volte anche questo codice( *p = i o i = *p
dove i è stato dichiarato come un intero)
e qui vi chiedo è corretto se dico che in quel codice io passo il valore
presente in *p o ricevo il valore di i?
Per il momento è tutto, grazie a tutti quelli che mi aiuteranno.
Ciao.Andrea

 presente in *p o ricevo il valore di i?
Il puntatore *p, usato come p restituisce l'indirizzo di memoria dove è
localizzato (un int*).
Usato invece come *p è come una comune variabile int.
Ciao
--
Timothy Redaelli

 ha scritto nel messaggio
news:a3tuk7$q6h$1...@nntp.weblinea.it...

Ciao!
Vorrei provare a rispondere...
Quando tu dichiari
int *p;
in realtà dici che *p è un intero! Ovvero il valore cui "p" punta è int !!
E' un modo diciamo "indiretto" di definire un puntatore, se vuoi, può non
apparire immediato.
Quindi se [int i;] è un intero, anche [int *p;] lo è, infatti: l'intero è
(*p), mentre (p) è il suo puntatore e quindi è un puntatore ad un int...
allora è lecito l'assegnamento *p=i; oppure viceversa, in quanto sono due
tipi identici! (anche se comunque un puntatore non inizializzato potrebbe
mandarti in errore il programma, ma questo è un altro discorso... suppongo
comunque che il resto del codice sia corretto, dato che è un esempio di un
libro... si suppone corretto).
Non potresti invece compilare (p = i), perché i è un intero, mentre p non lo
è, a differenza di (*p) che invece lo è!
Infatti su molti tesi, si preferisce (anche se per il compilatore non fa
differemza) scrivere
int* p; // perché dichiarando un puntatore, viene posto più in evidenza il
fatto che p è un puntatore.
a me piace di più (mi sembra formalmente più corretto) ma attento, perché
questa sintassi può ingannare chi comincia a programmare...
guarda un pò.
1) int a,b,c; // dichiara tre variabili interi (int dichiara tutti gli
identificatori che lo seguono dello stesso tipo, intero, appunto).
2) int a; // dichiara a come intero perché a segue int
3) int* p; // oppure int *p; dichiarano (*p) come intero, perché è intero
tutto quello che segue int, e quindi se *p è intero, p è il suo pointer!
4) int* a,b,c; // ATTENZIONE, non si comporta come la 1) !! sono interi
(*a),(b),(c), quindi non si può fare a=b;
Invece si potrebbe pensare (erroneamente) che sono tre puntatori, ma è
falso!
nella 4) l'unico puntatore è a... ecco perché in questo caso è più corretto
scrivere int *a,b,c;
So che la chiarezza non è il mio forte però... ce l'ho messa tutta per non
limitarmi unicamente a dire che il libro ha ragione senza cercare di
spiegarti il motivo...
Ciao.
Paolo Ferraresi.
Newsgroup: it.comp.lang.c++
Titolo: compiler and liker output

Quando compilo ricevo nessun errore ma si apre una finestra con queste
righe...di che si tratta e come risolvo?
D:\DOCUME~1\ADMINI~1\IMPOST~1\Temp\ccwzaaaa.o(.text+0x19c):server~2.cpp:
undefined reference to `WSAStartup@8'
D:\DOCUME~1\ADMINI~1\IMPOST~1\Temp\ccwzaaaa.o(.text+0x1fa):server~2.cpp:
undefined reference to `htons@4'
D:\DOCUME~1\ADMINI~1\IMPOST~1\Temp\ccwzaaaa.o(.text+0x249):server~2.cpp:
undefined reference to `getprotobyname@4'
D:\DOCUME~1\ADMINI~1\IMPOST~1\Temp\ccwzaaaa.o(.text+0x291):server~2.cpp:
undefined reference to `socket@12'
D:\DOCUME~1\ADMINI~1\IMPOST~1\Temp\ccwzaaaa.o(.text+0x2d5):server~2.cpp:
undefined reference to `bind@12'
D:\DOCUME~1\ADMINI~1\IMPOST~1\Temp\ccwzaaaa.o(.text+0x312):server~2.cpp:
undefined reference to `listen@8'
D:\DOCUME~1\ADMINI~1\IMPOST~1\Temp\ccwzaaaa.o(.text+0x367):server~2.cpp:
undefined reference to `accept@12'
PS. Uso devc++ 4.01
Grazie a tutti

PS. Uso devc++ 4.01
...
Non conosco quell'ambiente; ma dal testo dei messaggi di errore si
evince chiaramente che si tratta di errori di linking. Tu hai
probabilmente incluso un ".h" della libreria winsock (e quindi
non hai errori di compilazione) ma non hai aggiunto la
corrispondente libreria al tuo progetto (e quindi al momento di
risolvere le chiamate il linker non trova le funzioni descritte
nel .h). Per come fare dovresti rivolgerti a un newsgroup dedicato
a quel compilatore ... li' probabilmente avrai piu' fortuna...
HTH
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

Newsgroup: it.comp.lang.c++
Titolo: Problema di debugging

Sto cercando di fare debugging in Visual C++ 6.0. Dopo aver
messo dei breakpoints e aver dato il via al debugging con
F5, ottengo il seguente messaggio di errore:
"One or more breakpoints cannot be set and have been disabled.
Execution will stop at the beginning of the program."
Eppure funzionava prima... c'e' qualche setting che devo
cambiare?
Marco


Non ho mai lavorato in Visual C++, comunque tento una spiegazione generale
possibile.
Generalmente, appunto, un debugger non può attivare dei breakpoints in
punti perticolari se il codice è compilato con certi tipi di
ottimizzazioni. a prima vista ti consiglierei di rivedere gli eventuali
parametri di compilazione. Dici che prima funzionava, hai per caso
ricompilato con parametri di ottimizzazione differenti?
Spero di essere stato di aiuto, ma è un debugger che non conosco e potrebbe
essere tutt'altro.
Buon divertimento,
FabioMDF
 
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 ha scritto nel messaggio
news:cg4neg$n...@odak26.prod.google.com...

1) Prova a fare un Rebuild all...
2) Se nel progetto che hai è inclusa una dll non mettere breakpoints in
questa
3) Nelle proprietà del progetto, nel tab Debug, metti tutti i moduli (dll)
che devono essere caricati all'atto della partenza del programma
Spero di esserti stato d'aiuto.
Andrea
Ah dimenticavo:
4) sei O.T., poni la domanda su un newsgroup pù adatto
Newsgroup: it.comp.lang.c++
Titolo: dll e visual basic

	ciao a tutti
ho scritto una dll in c++... (pur avendo una scarsa infarinatura di c
e basta) che accetta due char*, il primo su cui legge, e il secondo su
cui scrive (sostanzialmente, deve copiare una parte delle parole dalla
prima stringa alla seconda),e la chiamo da VB, ma mi da erroe: credo
ci sia qualche pasticcio sui byval e byref: io passo entrambe come
byval (c'e' scritto cosi' sulla MSDN...) pero' credo abbia dei
problemi con la scrittura sulla seconda stringa, perche' quando la dll
cerca di scrivere sulla seconda stringa mi si blocca tutto vb6 ("il
programma ha eseguito" ecc.) mentre se non ci sono parole da copiare
dalla prima alla seconda stringa, e quindi non me la tocca, mi dice
solo che ho sbagliato a passare i parametri alla dll...
qualcuno mi sa dire come fare? mi andrebbe bene anche se la funzione
restituisse la seconda stringa... ma non saprei poi da vb leggere la
stringa intera a partire da un char*... 
spero di essermi spiegato... se non e' cosi' chiedete pure... :-)
meew alle prime armi

Ciao,
Questo newsgroup si occupa del linguaggio C++ in quanto tale, e non di
aspetti specifici di particolari implementazioni. Per questo non e' il
posto piu' adatto per porre domande specifiche come la tua.
Potresti avere piu' fortuna su uno dei seguenti gruppi:
Per Win32 (95, 98, NT): it.comp.programmare.win32
Per Linux:      it.comp.os.linux.development
Per C++Builder: i gruppi borland.public.cppbuilder.*, disponibili sul
                server 
forums.borland.com
 (in inglese)
Grazie,
Nicola Musatti

Potresti avere piu' fortuna su uno dei seguenti gruppi:
vi chiedo scusa ... non pensavo di essere OT... :-)
un meew che in effetti non ha lurkato molto prima di postare... ma ha
cercato se c'era un post col manifesto--- e non c'e' :-)
Newsgroup: it.comp.lang.c++
Titolo: hash_set<string>

, _HashFcn = __gnu_cxx::hash<std::basic_string<char,
std::char_traits<char>, std::allocator<char> > >, _EqualKey =
std::equal_to<std::basic_string<char, std::char_traits<char>,
std::allocator<char> > >, _Alloc =
std::allocator<std::basic_string<char, std::char_traits<char>,
std::allocator<char> > >]’
verificato.cpp:23:   instantiated from here
/usr/include/c++/4.3/backward/hashtable.h:595: error: no match for
call to ‘(const __gnu_cxx::hash<std::basic_string<char,
std::char_traits<char>, std::allocator<char> > >)
(conststd::basic_string<char, std::char_traits<char>,
std::allocator<char> >&)’
Qualcuno ha qualche idea? Grazie 1000!

 Qualcuno ha qualche idea? Grazie 1000!
La libreria non fornisce un'implementazione di __gnu_cxx::hash<std::string>,
che è necessaria per istanziare i vari container hash_(set|map|...) con
std::string. 
Usare quei container non è -comunque- una buona idea. Meglio, invece, usare
quelli (sostanzialmente equivalenti) definiti nel TR1.
Nel tuo caso, se hai una versione sufficientemente recente (credo >= 4.1)
della libreria standard di GNU, puoi usare 'unordered_set':
  #include <tr1/unordered_set>
 
  std::tr1::unordered_set< std::string > strset;
Max

In primo luogo grazie della risposta. Quello che mi hai detto mi è
stato molto utile, ora però ho un altro piccolo problema.
Ho un unordered_set<string>, e vorrei creare un vector<string *>. Mi
serve un vector di puntatori dato che devo utilizzare la funzione
random_shuffle, e mi sembra più efficiente scambiare puntatori che
oggetti string.
Per farlo ho provato una cosa del genere (questo è un esempio
semplificativo):
string a("a");
string b("b");
unordered_set<string> us;
us.insert(a);
us.insert(b);
vector<string *> v;
unordered_set<string>::const_iterator it = us.begin();
v.push_back(  &(*it) );
Ma all'ultima riga l'errore è questo:
error: invalid conversion from ‘const std::basic_string<char,
std::char_traits<char>, std::allocator<char> >*’ to ‘std::string*’
error: initializing argument 1 of ‘void std::vector<_Tp,
_Alloc>::push_back(const _Tp&) [with _Tp = std::string*, _Alloc =
std::allocator<std::string*>]’
Invece se faccio un vector<string> e faccio v.push_back(*it) va tutto
bene. Non riesco a capire... potete darmi una mano?

 v.push_back(  &(*it) );
Se dereferenzi un const_iterator ottieni un const string&. Per compilare
questo codice dovresti dichiarare 'v' come  vector<const string *>.
M
Newsgroup: it.comp.lang.c++
Titolo: Informzioni

Scusate la mia ignoranza in materia,
ho installato nel mio pc Tc++ vers 1.01
non riesco a capire una cosa anzi parecchie cose, voglio imparare il ling c
ma gli esempi del K&R spesso non vanno a buon fine nell'help del tc++ la
sintassi di parecchi programmi e' differente, come sistema oper ho window98
ma spesso in esecuzione alcuni programmi mi creano delle incompatibilita'
col sistema es:mi esce fuori dalla schermata e ritorna a quella di window
con la finestra d'errore.
Vorrei sapere se mi conviene eliminare il tc++ ed installare direttamente il
c++ e poi col c++ posso imparare anche il c(come elementi di basi)?



la sintassi k&r non é valida nel c++ ...
la versione 3.0 del turbo c++ (tu hai addirittura la 1.01) può farti
usare le diverse sintassi ... a questo punto perché non scarichi dev
c++ da 
bloodshed.net
 ?
Antonio

Newsgroup: it.comp.lang.c++
Titolo: gestione file compressi zip,rar

Dove posso trovare dei sorgenti che mi permettano di comprimere o anche solo
decomprimere file zip e rar ..
ho trovato le strutture dei file ma non ho volgia di farmi tutto il codice.
utilizzo turbo c++.
ma ho anche bordalnd c++ 5.00

 wrote in message
80673c$61n$3...@fe2.cs.interbusiness.it...


Mi pare che UnRAR gestisca anche gli ZIP, comunque mi informo e ti dico.
--
Diego "1985" Pettenò
per gli spammer la mail è
diego...@hotmail.com
ATTENZIONE: rispondo ai messaggi di pubblicità indesiderata
su TiscaliNet con un bel messaggio al provider di competenza!
per i messaggi seri è
diego....@tiscalinet.it
Newsgroup: it.comp.lang.c++
Titolo: Sottoclassi ed operatore =

Ho realizzato una superclasse, dalla quale dovranno ereditare n sottoclassi,
e voglio ridefinire l'operatore di assegnazione. Ciò che ho pensato è di
usare due funzioni di questo tipo:
SuperClasse& SuperClasse::operator = (const SuperClasse&);
SottoClasse& SottoClasse::operator = (const SottoClasse&);
Ma così non va bene, ottengo un warning (perché la funzione associata a
SottoClasse non è vista come derivata di quella associata a SuperClasse). Ho
provato a definire l'operatore della superclasse come virtual, ma non serve
a nulla. Come posso fare? Ciao e grazie
Marchisio Stefano

 a nulla.
Non credo di aver capito bene; perche' vuoi derivare un operator =
dall'altro?  Ecco un esempio:
,-----[ Non testato ]-----
| struct A {
|   int _a;
|   A(int a = 0) : _a(a) {}
|   A(const A & rhs) : _a(rhs._a) {}
|   virtual ~A() {}
|   A & operator = (const A & rhs) { _a = rhs._a; return *this; }
| };
| 
| struct B : public A {
|   int _b;
|   B(int a = 0, int b = 0) : A(a), _b(b) {}
|   B(const B & rhs) : A(rhs._a), _b(rhs._b) {}
|   ~B() {}
|   B & operator = (const B & rhs) { _a = rhs._a; _b = rhs._b; return *this; }
| };
`-----
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Dept. of Physics, Univ. of Padova, Italy          loreti at pd dot infn dot it

 a nulla. Come posso fare?
#include <iostream>
class A {
  protected:
    int _a;
  public:
    A(int a = 0) : _a(a) {}
    A(const A & rhs) : _a(rhs._a) {}
    virtual ~A() {}
    A & operator = (const A & rhs) { _a = rhs._a; return *this; }
};
class B : public A {
  private:
    int _b;
  public:
    B(int a = 0, int b = 0) : A(a), _b(b) {}
    B(const B & rhs) : A(rhs._a), _b(rhs._b) {}
    ~B() {}
    B & operator = (const B & rhs) { _a = rhs._a; _b = rhs._b; return *this; }
    void out(std::ostream & o = std::cout) { o << _a << ' ' << _b << std::endl; }
};
int main() {
  B uno(42, 666), due;
  due = uno;
  uno.out();
  due.out();
  return 0;


Newsgroup: it.comp.lang.c++
Titolo: [?] Qualcuno sa...

... come posso accedere alla seriale utilizzando il BCBuilder 3 ???
... Sapreste anche dirmi come posso gestire le immagini Jpg ? .... se
non ho capito male dovrebbe esserci da qualche parte un TJPEGImage ma
non riesco a recuperarlo da nessuna parte.
Grazie , Ettore

... Sapreste anche dirmi come posso gestire le immagini Jpg ?
Il componente TJpeg e' disponibile sul sito della inprise. Fai una ricerca e
dovresti trovarlo, non ricordo l'indirizzo preciso.
--
Byez
Stefano Tempesta
temp...@tin.it
http://tempesta.freeweb.org
Newsgroup: it.comp.lang.c++
Titolo: Devo capire i puntatori!

Probabilmente mi lapiderete ma, dove posso trovare in rete materiale
che mi spieghi i puntatori?
Vi sembrerŕ pazzesco ma, io non li capisco, cioč, sň che puntano a dei
dati ma, non capisco per quali scopi si debbano utilizzare!
Grazie.
P.S. Non ridete troppo se potete! ^___^;;;
-- 
^_______^                       K e n j i                      ^_______^
   (non č riferito a nessuno in particolare, perň č un nome ispirante)
 
                                ^_______^

dati ma, non capisco per quali scopi si debbano utilizzare!
Cerca il tutorial di Ted Jensen : molto ben fatto.

Suggerisco "Linguaggio C", di Kernigan & Ritchie.
Gli autori sembrano bravini.

 Gli autori sembrano bravini.
Un po' inesperti, forse (tutti quei main senza return!); ma se la
cavicchiano.  Miglioreranno...
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it

Gli autori sembrano bravini.
Eh gia', considerando poi che l'hanno inventato loro il linguaggio,
direi che sono dei genietti ! ;)

 direi che sono dei genietti ! ;)
Non c'e` male...:-).
Alex

Newsgroup: it.comp.lang.c++
Titolo: Problemi Extern "C"

 
Salve, nel mio programma in C++ non riesco a sfruttare una funzione scritta
in C:
#include <cstdlib>
#include <iostream>
extern "C" char* ris();
using namespace std;
int main(int argc, char *argv[])
{
    cout << ris << endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}
ove char* ris() ritorna semplivcemente la stinga "Funziona"
ma, quando compilo il compilatore mi "dice":
main.cpp: In function `int main(int, char**)':
main.cpp:10: warning: the address of `char* ris()', will always evaluate as
`true'
eseguo il programma e l'output su standard output è 1.
Qualcuno può aiutarmi? Non sò dove sbaglio.
Grazie
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 
-- 
MSN: sirpsycho_78 -at- hotmail dot com

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

Ciao,
        a scuola (per i principianti come me) insegnano a caricare un
vettore di tot. elementi (es. 10) e poi stamparlo a video con e senza l'uso
di puntatori. Un programmatore in questo caso dovrebbe usarli i puntatori o
no? Perchč?

 wrote in message
news:dSpY6.64187$Rq1.4...@news.infostrada.it...

Spero ti renderai conto da solo che il programma in questo caso non ha senso
punto e basta. O meglio: ha senso solo come esercizio per imparare come fare la
cosa in antrambe i modi.
La scelta se usare o no il puntatore puo' dipende da fattori che in questo
programma non esistono neppure. Come regola generale (ovvero salvo che esista un
vero motivo impellente per fare diversamente) usa il meccanismo che:
1) e' piu' leggibile
2) e' tale che e' piu' difficile commettere errori
3) e' piu' solido anche se gli errori li commetti
--
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
Newsgroup: it.comp.lang.c++
Titolo: Puntatori a funzione

Che mi spiega per bene i Puntatori a funzione???
Tnk 10000000000000000000000000000000000000000000000000
-- 
.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
Ciao da Kleidemos
C++ Programmer
.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.

Ho provato a leggermi il Lippman e poi ad applicare:
#include <iostream>
#include <cstdio>
using namespace std;
char ciao(char *nome)
{
    cout << "Ciao " << nome <<endl;
}
char ciao2(char *nome)
{
    cout << "Culo " << nome <<endl;
}
int main()
{
    char ( *punt )( char* );
    char ris1, ris2;
    punt = ciao;
    ris1 = punt("luca");
    punt = ciao2;
    ris2 = punt("zane");
    system("PAUSE");
    return 0;
}
Ma appesantiscono il programma?

Kleidemos wrote:

Il punto non è questo: per come li hai usati in questo esempio non hanno 
alcuna utilità. Ti faccio un esempio: supponi di voler scrivere una 
funzione generica che ti serva per plottare una funzione matematica:
void plot(int min, int max, double (*pfun)(double));
Questa è la dichiarazione ipotetica della funzione che potresti scrivere. La 
puoi richiamare ad esempio:
plot(0, 100, std::sin);
oppure:
plot(1, 100, std::log);
In pratica nell'implementazione di plot ogni occorrenza di pfun viene 
sostituita dalla funzione passata come terzo argomento.
In pratica i puntatori a funzione in C++ sono obsoleti, mentre in C sono 
ancora utili: ad esempio nella libreria standard del C alcune funzioni 
hanno come argomento un puntatore a funzione (vedi qsort), oppure si 
possono usare per tentare di implementare una specie di OOP.
Ciao,
Cecco

 possono usare per tentare di implementare una specie di OOP.
Non sono più eleganti gli oggetti funzione?
Pura curiosità, io finora ho usato solo quelli.

ancora utili: ad esempio nella libreria standard del C alcune funzioni 
<cut></cut>
Salve. Una domanda: se i puntatori a funzione in C++ sono obsoleti,
come si procede nel caso del caricamento a runtime di una funzione una
DLL? So che e' una domanda relativa a Windows, ma e' la prima cosa che
mi e' venuta in mente che non saprei fare senza utilizzare puntatori a
funzione. 
Grazie.
Fulvio

ancora utili: ad esempio nella libreria standard del C alcune funzioni 
<cut></cut>
Salve. Una domanda: se i puntatori a funzione in C++ sono obsoleti,
come si procede nel caso del caricamento a runtime di una funzione
(da) una DLL? So che e' una domanda relativa a Windows, ma e' la prima
cosa che
mi e' venuta in mente che non saprei fare senza utilizzare puntatori a
funzione. 
Grazie.
Fulvio
(scusate il "repost": mi era scappato un "da")


Non è vero che sono obsoleti...
oltre ad esistere i puntatori a funzioni membro, i puntatori stile C vengono
utilizzati anche nel C++, se vuoi fare una funzione generica, che attraverso
i puntatori a funzione implementa una funzione specifica, all'interno di
quella generica. Non sempre conviene fare una classe base e poi derivarla
per fare la cosa su spiegata, può anche essere uno spreco di risorse
inutile.
--------------------------------
Inviato via 
http://usenet.libero.it
Newsgroup: it.comp.lang.c++
Titolo: Mysql e c++

Qualcuno mi saprebbe dire come connettermi
ad un database locale Mysql usando il  C++  ??

 
La questione è OT in questa sede. 
Si tratta, peraltro, di informazioni che sono facilmente reperibili sul
sito di Mysql, nonchè (presumo) nella documentazione distribuita con il
software stesso.
Ad ogni modo:
 
http://www.mysql.com/documentation/mysql++/
 
http://www.mysql.com/download_mysql++.html
Max

Newsgroup: it.comp.lang.c++
Titolo: Problemi con ereditarieta' e polimorfismo...

Quando compilo questo programma (che non fa nulla) il compilatore mi ritorna il seguente messaggio di errore:
" no match for C& = int  canditates are: C::operator = (const C&)", cosa ho sbagliato?
 
class A {
   private:
      int dato;
};
class B: public A {
   private:
     int FisicValue;
     void operator = (A nouvoA) {
        return ;
      }
   public:
      void operator = (int NewValue) {
          return ;
      }
};
class C: public B {
};
class D {
   private:
      C ClasseC;
   public:
      void funzioneC(void);
};
void D::funzioneC(void) {   ClasseC = 1; }
Grazie a tutti,
Giulio
-- 
Posted from [212.210.176.13] by way of 
mta35-acc.tin.it
 [212.216.176.88] (may be forged) 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Ciao Giulio,
dovresti definire l´operatore = per la classe C in modo che restituisca un
riferimento a C C&.
Lo so che C ha ereditato dalla classe B la quale ha definito l´operatore =
che ha per parametro un intero, ma questa restituisce void, mentre tu nella
funzioneC della classe D fai: {   ClasseC = 1;}, per cui manca l´operatore =
con l´appropriato tipo di ritorno C&.
Mauro

 cosa ho sbagliato?
Gli operatori di assegnamento (come i costruttori) non vengono ereditati
e quindi se ne vuoi uno che abbia il parametro int devi definirlo
esplicitamente. Quello implicito assegna due oggetti della stessa
classe.
EMG

Newsgroup: it.comp.lang.c++
Titolo: domandina facile

Ciao
da poco meno di 24 ore...studio C
se devo far un calcolo fra due valori con virgola, utilizzo float....
ho notato che  pero' non scrivo (5.0/6.0) ma scrivo (5/6) nonostante il
valore che ne viene fuori e' asseganto ad una variabile float, ottengo un
valore pari a zero...
ma non dovrebbe esserci una conversione automatica?
inoltre se ho due variabili una INT e l'altra FLOAT il valore int devo
scriverlo( laddove ci sia un calcolo da fare con l'altra variabile FLOAT)
con la virgola seguita da uno zero?
grazie!!!!!!!!

 con la virgola seguita da uno zero?
No. La conversione verra' effettuata automaticamente dal compilatore
all'occorrenza.
Puoi anche forzare la conversione con un float(nomevariabile).
Ciao,
Giambattista

 da poco meno di 24 ore...studio C
it.comp.lang.c
-- 
Luc.

Newsgroup: it.comp.lang.c++
Titolo: Cerco compilatore!

Una URL per me!
Grazie!

 Grazie!
Per Win32 e DOS :
http://space.tin.it/computer/rgerola/compil.htm
Per Win32 consigliatissimo EGCS-1.1 di Mumit Khan distribuzione Mingw32.
_________________________________________
Roberto Gerola
e-mail: 
roge...@tin.it
www: 
http://space.tin.it/computer/rgerola
Newsgroup: it.comp.lang.c++
Titolo: GotoBookmark()

Per scorrere in un dataset i records selezionati in una
griglia, ho usato le seguenti righe di codice (prendendo
spunto dall'help):
..
TDataSet *pDS = DBGrid1->DataSource->DataSet;
for (int i=0; i < DBGrid1->SelectedRows->Count; i++)
{
pDS->GotoBookmark((void *)DBGrid1->SelectedRows->Items[i]);
..
}
ma in fase di compilazione, ricevo un errore sulla riga del
GotoBookmark di tipo:
E2031 Cannot cast from 'Ansistring' to 'void*'
Qualcuno mi puņ aiutare?
Grazie!
* Sent from AltaVista 
http://www.altavista.com
 Where you can also find related Web Pages, Images, Audios, Videos, News, and Shopping.  Smart is Beautiful

 pDS->GotoBookmark((void *)DBGrid1->SelectedRows->Items[i]);
prova la property Bookmark (accetta una String in scrittura) a cui puoi
assegnare una  DBGrid1->SelectedRows->Items[i] senza bisogno di cast.
In pratica assegnando la property Bookmark, quest'ultima esegue lo stesso
lavoro di GotoBookmark (solo che Bookmark accetta la String), quindi
pDS->Bookmark = DBGrid1->SelectedRows->Items[i];

Newsgroup: it.comp.lang.c++
Titolo: struttura C++ per invio comandi con un certo protocollo

ciao a tutti,
[vi conviene prendere carta e penna per disegnare l'albero delle
derivazioni]
il mio problema e' inviare certi comandi via seriale usando un certo
protocollo di comunicazione.
Ho pensato di creare la classe (astratta) comando da cui derivare CommA e
CommB. Inoltre
ho pensato di  creare la classe (astratta) protocollo che al suo interno
contiene l'oggetto per
la gestione della linea seriale. A questo punto associo a ogni comando
(A e B) il protocollo generico creando un oggetto che eredita da CommA
(oppure CommB) e
protocollo. Possiamo chiamare questo oggetto ProtCommA (oppure ProtCommB).
Infine
specializzo il protocollo derivando da ProtCommA le classi ProtACommA e
ProtBCommB, nelle quali
specializzero' le funzioni di codifica messaggio, get, set, .....
Al costruttore dell'oggetto contenitore di tutto, passero' il tipo di
protocollo e, in base a cio',
fara' le new di oggetti di tipo ProtAComm... oppure ProtBComm....
Il puntatore che ritorna la new sara' assegnato a un puntatore di tipo
ProtCommA (oppure ProtCommB),
 in modo da fare pProtCommA->Codifica(), senza piu' preoccuparmi del
protocollo usato.
Cosa ne pensate?
grazie fin d'ora
--
Tiberio Grasso

ProtBCommA, nelle quali

Newsgroup: it.comp.lang.c++
Titolo: c++3.0:sound blaster

Ciao a tutti! Sono nuovo del news e comincio a farvi una domanda forse non
troppo semplice...come posso usare una scheda audio sound blaster
compatibile?
C'è qualche sito dove posso repire informazioni a riguardo?
Ringrazio anticipatamente tutti.

Ciao,
Questo newsgroup si occupa del linguaggio C++ in quanto tale, e non di
aspetti specifici di particolari implementazioni. Per questo non e' il
posto piu' adatto per porre domande specifiche come la tua.
Potresti avere piu' fortuna su uno dei seguenti gruppi:
Per Win32 (95, 98, NT): it.comp.programmare.win32
Per Dos/Win 3.x: it.comp.os.dos
Per Linux:      it.comp.os.linux.development
Per C++Builder: i gruppi borland.public.cppbuilder.*, disponibili sul
                server 
newsgroups.borland.com
 (prevalentemente in 
                inglese, ma si puo' postare anche in italiano)
Aggiungo che per richieste cosi' specifiche il punto di partenza piu'
appropriato e' 
www.google.com
Grazie,
Nicola Musatti

Newsgroup: it.comp.lang.c++
Titolo: !!! DIFFERENZE OPERATORI

    Salve a tutti.
mi rivolgo a qualcuno di voi sperando di riuscire a sciogliere 2 dei miei
dubbi.
che differenza c'è tra | e ||???
che differenza c'è tra & e &&???
nonostante i mie sforzi non sono riuscito a interpretare il concetto.



nonostante i mie sforzi non sono riuscito a interpretare il concetto.
Per dirla molto in breve la versione "corta" (| e &) sono operatori 
logici che lavorano a livello di bit:
int a = 1 & 2;  // a==0
int b = 1 | 2;    // b==3 (11 in binario);
La versione lunga (|| e &&) 
sono invece i normali operatori booleani (che operano su true
e false, ricorda che un intero viene convertito a true se diverso da
0, false altrimenti):
bool c = 2 ||  0; // produce true che viene convertito in 1 se assegnato
                               // ad un int
bool d = 2 && 0;  // false, convertito a 0 se assegnato a int.
Paolo
-----------------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------------------------
Newsgroup: it.comp.lang.c++
Titolo: principiante... aiuto!!!

    Ciao a tutti, sono un neofita di VC++ 6 ma conosco abbastanza bene VB.
Il mio problema è questo: non riesco proprio a trovare i corrispondenti, in
c++, delle funzioni Right(), Left(), Mid() ed InStr() di Visual Basic. Sono
funzioni *basilari*, per gestire le stringhe... mi fareste proprio un gran
favore se mi spiegaste come fare in c++...:-D
    Grazie,
    Marco

 InStr() di Visual Basic. 
La classe std::string dispone di funzioni equivalenti a quelle che ti
servono. Consulta la documentazione della libreria standard per i
dettagli, oppure vai qui:
 
http://www.dinkumware.com/htm_cpl/string2.html
Max

 wrote in message
Pine.LNX.4.10.100052...@c64.comm2000.it...


Non sono tanto esperto riguardo agli ultimi due casi me per il primo prova
a scrivere:
int main( int a, char* arguments[] ) { 
            cout << "nome del programma" << arguments[0] << endl;
            cout << "parametri aggiuntivi:" << endl;
            for(int b = 1; b < a; b++) cout << arguments[b] << endl;
            return 0;
}
 
In poche parole il primo elemento di arguments è il nome del programma e li
altri i parametri aggiuntivi.  

 int main( int a, char* arguments[] ) {
Ma i consueti argc e argv ti fanno tanto schifo? :-)
EMG

 c++, delle funzioni Right(), Left(), Mid() ed InStr() di Visual Basic.
Guardati il metodo substr().
EMG

 wrote in message
39302DA4...@flashnet.it...


 cosette in c++?
Con le classi ofstream e ifstream.
EMG


Eccoti un esempio:
#include <fstream.h>
[...]
/*---SCRITTURA---*/
ofstream fwrite_b("nome_file.estensione", ios::out | ios::binary);
fwrite_b << /*nome variabile1*/<< endl;
fwrite_b << /*nome variabile2*/ << endl;
//...
fwrite_b.close();
/*questa funzione non è strettamente necessaria, dal momento che il
distruttore di ofstream, se il file è stato lasciato aperto, provvede alla
chiusura del file*/
/*---LETTURA---*/
ifstream fread_b("nome_file.estensione",  ios::in | ios::binary);
/*legge dal file binario*/
if (fread_b) /*cioè se il file è stato aperto correttamente*/
{
    fread_b >> /*variabile di destinazione 1*/;
    fread_b >> /*variabile di destinazione 2*/;
}
else
{
    /*gestisci l'errore...*/
}
fread_b.close();
Ciao,
Vale
Newsgroup: it.comp.lang.c++
Titolo: Perchè non compila?

class Oggetto
{
public:
 Oggetto(int a, int b) {}
};
template <class T>
class Contenitore
{
 static Oggetto obj;
};
template <class T>
Oggetto Contenitore<T>::obj(5,3);
Contenitore<int> istanza;
Non riesco a capire perchč non compili. Il VC6.0 mi dice
E:\prova\PostIt\TrayIcon.cpp(28) : error C2059: syntax error :
'constant'
E:\prova\PostIt\TrayIcon.cpp(28) : error C2063: 'obj' : not a function
E:\prova\PostIt\TrayIcon.cpp(28) : error C2040: 'obj' : 'class Oggetto
(void)' differs in levels of indirection from 'class Oggetto'
Qual'č la sintassi corretta per utilizzare un oggetto statico in un
template?
Grazie e ciao, FBF.

 Contenitore<int> istanza;
Il DJGPP me l'ha compilato senza fiatare.
EMG

Enrico Maria Giordano wrote:

Orc, giud, boia...!!!-( Che compilatore bastardo. Mi sembrava che la
sintassi fosse giusta. Abbasso la Micro$oft.
Ciao e grazie per l'aiuto.

 Qual'è la sintassi corretta per utilizzare un oggetto statico in un

Newsgroup: it.comp.lang.c++
Titolo: Matrice sparsa

Dovrei implementare una "matrice sparsa". La si potrebbe pensare come un 
vettore in cui NON sono presenti tutti gli elementi.
Una soluzione potrebbe essere quella della MAP con valore il "valore" e 
chiave l'indice numerico ( se e' una matrice a*b, la chiave sara (x*b+y) 
con 0<=x<a, 0<=y<b ).
Un'alternativa potrebbe essere:
gestire un 2 vettori: uno dei valori, ed un'altro costituita da una bitmap, 
in cui i bit ad 1 corrispondono a valori presenti, mentre quelli a zero a 
volore=0. Contando i bit ad uno risalgo alla posizione del valore 
nell'array. ( Pero' a questo punto  sorge la domanda : come faccio a sapere 
quanti bit ci sono in un unsigned int ? in C c'e' la costante CHAR_BIT , ma 
in C++ ?  )
Altri suggerimenti ?

 in C++ ?  )
#include <limits>
int num_of_bits_in_unsigned_int_type = numeric_limits<unsigned int>::digits;
--
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

Vai a cercarti soluzioni gia' esistenti, ad esempio su
www.oonumerics.org
 .
Ciao,
Nicola

 
www.oonumerics.org
 .
grazie ci daro un occhiata, ma non sto scrivendo questo codice per esegenza 
personale ma per studio del C++...


Il calcolo matriciale e' un settore dove in C++ si stanno facendo cose
stratosferiche. Anche solo studiare il codice di alcune librerie puo'
essere un esercizio utile.
Ciao,
Nicola

 Altri suggerimenti ?
Dovendo usare una map e' piu' conveniente una chiave 
std::pair<unsigned,unsigned>
cosi eviti i calcoli sugli indici (non per ragioni di performance ma per 
semplicita') inoltre aversti una matrice sparsa di dimensioni
"virtualmente"
infinite.
Se invece vuoi poter usare una notazione del tipo Mat[i][j] puoi
realizzare
la matrice con un map di indici su righe, dove le righe a loro volta
hanno
una map di indici su valori.
L'operatore [] sulla matrice ritorna una riga su cui e' possibile
invocare 
nuovamente l'operatore [] per ottenere il valore finale.
Una classe di questo tipo e' abbastanza semplice da realizzare (l'ho
scritta 
in un quarto d'ora)
Se distingui tra letture e scritture, puoi anche usare un valore di
default
per le letture e aggiungere elementi alla map solo in scrittura.
(Questo e' un po' piu' difficile ed e' necessario qualche ulteriore
trucchetto)
buono studio
/fabio

Newsgroup: it.comp.lang.c++
Titolo: come si fa a lanciare in Background un programma?

Sto facendo un programmino.. un po' stupido per la veritą.. č una sveglia
che lascia un msg..quando suona..
ma.. come faccio a farla andare in background?...
Grazie a tutti per l'aiuto ^_^

 ma.. come faccio a farla andare in background?...
dipende dal SO che usi.
-- 
__________________________________
"Ama e fai c'ho che vuoi".... 
__________________________________

Su linux dovresti premettere la & al prog, se nn ricordo male.
Per esempio:
 &MioProg
--
Ciao da Kleidemos
C++ Programmer
Visual C++ 6
Newsgroup: it.comp.lang.c++
Titolo: come scegliere

Mingw32 with GCC          version 2.8.1
sono due compilatori in c oppure c++, avendo Perl installato su un PC
con Windows95 b - quali di questi usare o quali differenze hanno.
Ringrazio quanti mi chiariranno questi dubbi.

Antonio Ciampi wrote in message <36151cba.977585@wingate>...

GCC ed EGCS sono entrambi in grado di compilare C e C++ (e, mi
pare, Objective C); EGCS dovrebbe inoltre includere anche un
compilatore Fortran (g77).  EGCS e` assai piu` aggiornato; anzi,
adesso c'e` la versione 1.1, che e` ancora meglio (sempre un
port di Mumit Khan, com'era quello a mingw32 della 1.0.2); inoltre
alla lunga l'obiettivo e`di avere in EGCS i front-end per tutti i
linguaggi supportati dalla Free Software Foundation, tanto in
pratica differisce solo il front-end e si possono condividere la
gran parte del compilatore, linker, librerie di supporto (credo che
la sigla stia per "Extended GNU Compiler System" o giu` di li`,
magari controlla sotto 
www.cygnus.com
).
Riassumendo: penso che ti convenga mirare ad egcs, magari
la 1.1 se la trovi!, indipendentemente dal Perl e dall'esatto
release del tuo sistema operativo.
Alex
Newsgroup: it.comp.lang.c++
Titolo: Visual C++: Controls

Mi sono procurato Visual C++, l'ho installato, mi sono preso un apposito
libro, ed ho cominciato a seguire gli esempi. Per errore ho chiuso la barra
strumenti COMMON CONTROLS che appare quando si modifica una finestra di
dialogo. Come faccio a farle riapparire ?
Millegrazie.

 wrote in message
YJyx4.12342$i%1.14...@news.infostrada.it...

Ciao,
suppongo che stai parlando di Microsoft Visual Studio, in tal caso devi
prima aprire in edit un form (altrimenti non ti compare la scelta) poi vai
sul menů Tools -> Customize -> Toolbars e clikki su Controls (oppure fai il
solito click con il tasto DX su una toolbar qualsiasi e selezioni Controls
li sopra)

E' sufficente che clicchi con il pulsante destro sui menù che ci sono di
già, quindi scegli controls dal menù a tendina che ti viene fuori.
--
---------------------------------------
Tonello Stefano
e-mail : 
tone...@tiscalinet.it
web    : 
www.geocities.com/tonellos
ICQ    : 36611007
---------------------------------------


Newsgroup: it.comp.lang.c++
Titolo: Come serializzare...

Io sono ancora un novellino della programmazione visuale....
Cmq il mio dubbio č questo:
Se nella mia applicazione io metto un bottone a cui associo l'opzione di
"Save" (salvataggio in un file) poi come faccio effettivamente a
salvare(/caricare) quello che (
ad.es
.) ho scritto in un textfield? (a cui ho
associato una var di tipo CString)???
Grazie 1000000
-=STEO=-

 associato una var di tipo CString)???
Presumendo tu stia parlando di MFC, hai vari possibili
approcci.  Ad esempio, il + semplice e "brutale"...:
void salva(const char* nomefile, const CString& lastringa)
{
    CFile f(nomefile, CFile::modeCreate | CFile::modeWrite );
    f.Write((LPCTSTR)lastringa, lastringa.GetLength());
    f.Close();
}
void carica(const char* nomefile, CString& lastringa)
{
    CFile f(nomefile, CFile::modeRead );
    int len = f.GetLength();
    LPTSTR pSt = lastringa.GetBufferSetLength(1+len);
    f.Read(pSt, len);
    f.Close();
    lastringa[len]=0;
    lastringa.ReleaseBuffer();
}
(Queste produrranno delle exception C++ se manca
memoria o si verificano errori di I/O, quindi chiamale
entro un try/catch!).
Alternativamente, fatto un CFile come nelle funzioni
precedenti, puoi costruirci sopra un CArchive e poi
usare gli operator>> e operator<< per serializzare
e de-serializzare.  Ad esempio, per salvare:
void salva(const char* nomefile, const CString& lastringa)
{
    CFile f(nomefile, CFile::modeCreate | CFile::modeWrite );
    CArchive ar(&f, CArchive::store);
    ar << &lastringa;
    ar.Close();
    f.Close();
}
Come vedi, non val la pena per un semplice salvataggio,
ma c'e` il vantaggio che il recupero e` molto semplice,
e inoltre se di oggetti devi salvarne parecchi, piuttosto che
una singola CString, l'approccio basato su CArchive
diventa assai piu` conveniente.
Alex

 > Cmq il mio dubbio č questo:


 > > cui ho associato una var di tipo CString)???
tutti nell'ambiente (che non hai nominato, ma si deduce
dall'uso di "CString") MFC.
Cosa, a parte i tubi (che non ho nominato), ti risulta
non chiaro in questi esempi?
Alex
Newsgroup: it.comp.lang.c++
Titolo: Saluti

Ciao,
 sono nuovo in questo newsgroup. volevo chiedervi una cosa, se possibile.
Perche' si usa un'espressione del genere? quali vantaggi puo' offrire
dichiarare un enumeratore di un solo elemento :
typedef enum SVAPI_SPKFORMAT_tag 
{
	SVAPI_SPKFORMAT_BINARY
} SVAPI_SPKFORMAT;
 
typedef SVAPI_SPKFORMAT SVAPI_SPEAKEREXPORTFORMAT;
typedef SVAPI_SPKFORMAT SVAPI_SPEAKERIMPORTFORMAT;
ringrazio anticipatamente
--
Posted from 
deepspace.cline.it
 [212.39.2.130] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

...


Newsgroup: it.comp.lang.c++
Titolo: Tracciare su hDC in Basic con ScaleMode impostato da C (MFC)


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

 wrote in message
36baf605...@192.0.0.85...

Newsgroup: it.comp.lang.c++
Titolo: Distruttori....ne ho troppi, usando <vector> !

Andrea
Grazie Andrea,
quindi ne deduco che l´implementazione di vector in VC++ 6 non e´ ottimale?
Mauro

Ciao Max,
come ha giustamente detto Andrea Griffini il VC++ 6 rialloca il vettore
quando si fa un push_back(), e come hai detto tu non facendo le stampe nel
copy constructor non potevo vedere che il numero di costruttori e
distruttori era lo stesso.
Adesso ho capito con quale regola il VC++ 6 rialloca il vettore:
non sempre ma con la "regola del 2".
Dovrebbe usare un array di dimensione doppia ogni volta facendo  un
push_back lo spazio rimasto non e´sufficiente,
per cui:
al primo push_back alloca un vettore di dim 1.
al secondo push_back dealloca il vecchio e rialloca il vettore con dim 2.
al terzo push_back dealloca il vecchio e rialloca il vettore con dim 4.
infatti
al quarto push_back non c´e´ deallocazione e riallocazione!
al quinto avviene ma con dim 8
infatti poi possiamo fare altri push_back senza deallocazioni e
riallocazioni.
Cosa ve ne sembra di questa metodologia?
Mauro

 
http://www.netservers.com/~agriff

 Cosa ve ne sembra di questa metodologia?
Buono finchè si parte da un numero basso di elementi, e si eseguono poche
push_back. Ma se...
6° --> 16
7° --> 32
8° --> 64
9° --> 128
10°-->256 ...
Se eseguo una push_back() per inserire il 129° elemento, che me ne faccio
degli altri 127 (soprattutto se si tratta di oggetti di grosse dimensioni)?
Secondo me è meglio conoscere già la dimensione media del vettore, e
allocarlo con quella dimensione. Oppure, se proprio si deve, ridimensionarlo
al numero di elementi corrente più X, dove questa X è il numero di aggiunte
(più o meno) preventivate.
Domenico Barra

quindi ne deduco che l´implementazione di vector in VC++ 6 non e´ ottimale?
Dipende. Se tu allocassi vettori di un elemento con una classe
grande allora secondo me la scelta di borland sarebbe discutibile
(lo spazio allocato ma non usato sarebbe sprecato).
Una versione ottimale si dovrebbe forse basare su sizeof()
per decidere come comportarsi (anche se con classi 'grandi'
e' probabilmente meglio evitare le riallocazioni e quindi
l'uso stesso di std::vector come contenitore).


(più o meno) preventivate.
Credo che lo standard di fatto obblighi a crescite sempre maggiori
quando richiede operazioni di accesso e aggiunta in coda a tempo
"costante ammortizzato". E' anche vero che se un implementasse
delle crescite che cominciano ad aumentare dopo 10 miliardi di
elementi comunque sarebbe compliant.


Nel dubbio conviene utilizzare il metodo "reserve" o il costruttore che
prende un intero come argomento. Bisogna ricordarsi che idealmente un
vettore e' un contenitore che cresce solo in circostanze eccezionali.
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: Ambiente sviluppo

Salve a tutti!
Vorrei sapere il nome di un buon ambiente di sviluppo free per c++. No
Dev-cpp (posto che sia buono o no).
Grazie!

Non hai detto la piattaforma... KDevelop per Linux :-)
--- bye

Volendo esiste anche Anjita, sempre per Linux (Anjuta č basato su Gnome +
Linux, KDevelop su KDE + Linux). Non mi sembra esistano molti IDE free su
Windows... E cmq non raccomanderei dev-cpp neanche al mio peggior nemico :-)
(l'ho usato e mi č sembrato abbastanza "primitivo")
--- bye

 ha scritto nel messaggio
news:V725c.54624$O31.2...@news4.tin.it...

A me sembra il migliore (parlando di IDE free per Windows), per Linux mi
piace KDevelop3.

 piace KDevelop3.
Ma paragonando dev-cpp a KDevelop 3 o a Visual Studio come lo definiresti?
Io "Primitivo"! :-)
--- bye

 Io "Primitivo"! :-)
Certo, però... KDevelop3 è per Linux, Visual studio è bello ma costa!
Allora, se vuoi una IDE free per Windows cosa fai? Lo so anche io che non è
paragonabile ai due che hai enunciato... è comunque l'unico con quei
requisiti (almeno per quello che io so).
ciao.

 requisiti (almeno per quello che io so).
Sì, dovrebbe essere l'unico.
Fondamentalmente non esistono IDE seri per Windows! :-)
--- bye

 Fondamentalmente non esistono IDE seri per Windows! :-)
Certamente non esistono free. Visual C++ e Borland C++ Builder (che ho usato
molto in passato) hanno perň un'ottima IDE, grande editor (comodissima guida
in linea) e ottimo debugger.
Effettivamente, se si deve usare Windows e non si mette in cantiere
l'aquisto di uno dei due, bisogna "accontentarsi".
ciao.

 Grazie!
Personalmente trovo interessante RELO (
www.fifsoft.com/relo
 o
sourceforge), un IDE
free che si interfaccia ai compilatori MinGW (gcc per Windows) o bcc 5.5
(Borland free
compiler).
Qualcuno lo potrebbe definire primitivo, ma in realtà c'è (quasi) tutto
quello che ti serve
per gestire progetti anche complessi.
Ciao.
Sergio.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Grazie!
Prova a scaricare CodeBlocks (
www.sourceforge.org
).
E' free (licenza GPL), si interfaccia a gcc.
Ciao.
Sergio

Newsgroup: it.comp.lang.c++
Titolo: breakpoint indesiderato...

Mentre debaggo l'applicazione senza aver definito nessun breakpoint (almeno
consciamente), mi capita di essere bloccato da un "User breakpoint called
from code at ..."
che interrompe il flusso e mi mostra il disassembly posizionandosi sul
breakpoint.
Non riesco a capire come togliere questo brekpoint.
Come posso fare?
Ciao
Terenzio


Non riesci a resettare tutti i breakpoit in blocco? Quasi tutti gli
ambienti prevedono questa possibilita'.
Beh, altrimenti non saprei...
Ma quale ambiente usi?
Ciao.
-- 
     (ZZZ)       Filippo Salotti, Bagni di Lucca, Lucca, Italy.
    //   \\  _                 E-mail : 
fil...@humnet.unipi.it
   /Y\    ZD<_o===============================================o
 .oZZZZZo.     | Studente Ingegneria Informatica Automatica  |
<OXXXXXXXO>    | Dip. Sistemi Elettrici Universita' di Pisa. |

Ma quale ambiente usi?
azz vero ho dimenticato di dirlo :P, utilizzo Visual c++.

 azz vero ho dimenticato di dirlo :P, utilizzo Visual c++.
Con Ctrl+Shift+F9 si dovrebbero resettare tutti i breakpoit (VC++ 4.0)
anche quelli che involontariamente vengono inseriti in posti strani per
errore.
Ma sei sicuro che si ferma tutto per un breakpoint e non per un errore?




Newsgroup: it.comp.lang.c++
Titolo: Ottenere il file descriptor da un ifstream

come posso ottenere il file descriptor di un file da un ifstream aperto?
grazie
-- 
Mastupristi?

 
farlo in maniera standard e portabile non è possibile.
-- 
MSN: sirpsycho_78 -at- hotmail dot com

 farlo in maniera standard e portabile non è possibile.
no...
alla funzione che devo scrivere viene passato un ifstream gia' aperto. E' un
file di testo. Devo leggerlo riga per riga, quindi uso ifstream::getline(),
ma sembra che la versione del compilatore (o delle lib) che devo usare sia
bacata. Infatti funziona bene solo con file formattati unix, ma io lavoro
sotto windows. Una vecchia versione del compilatore invece funziona
perfettamente, ma non la posso utilizzare.
ciao
-- 
Mastupristi?

Mastupristi wrote:

quando apri l'ifstream devi specificare che si tratta di un file di 
testo e non un file binario. Lo fai?


 testo e non un file binario. Lo fai?
certo...
di default i file vengono aperti di testo tantevvero che esiste solo
ios::binary per descrivere come voglio aprire il file (e non esiste il
corrispondente ios::text), quindi non specificando nulla nella open sono
sicuro di aprire il file in modo testo.
e poi usando un vecchio compilatore funziona...
ciao
-- 
Mastupristi?