mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c++
Titolo: Network/host byte order endianness

Passando da rete (big-endian) a host (little-endian) ho bisogno di
mappare dei valori a 16 e 32 bit nell'ordine corretto.
Lavoro con un micro processoree embedded. Potrei implementare i
classici htons/l e ntohs/l, ma speravo in qualcosa di più sottile.
Vedo che esistono dei linguaggi (e.g. NesC) che prevedono dei dati
primitivi di tipo "external types", per i quali il compilatore si
arrangia a gestire coerentemente la endianness dipendentemente
dall'architettura (MCU hardware) in cui ci si trova.
Qualcosa del genere è realizzabile in C (GNU GCC/G++)? Magari
definendo degli operatori o dei template o altro ?
Grazie in anticipo
RM


Suppongo intendi C++ e non C, anche perche' questo gruppo e' sul C++, ma 
soprattutto perche' in C non si possono definire ne' operatori ne' template.
Comunque la risposta e': "Si puo' fare, ma ti conviene?"
Se crei e usi dei tipi "network_short", "network_ushort", 
"network_long", "network_ulong", e' vero' che non devi preoccuparti di 
convertirli dopo averli ricevuti dall'esterno e prima di inviarli 
all'esterno, ma e' anche vero' che, nel caso in cui l'endianness dei tuo 
computer sia diversa da quella della rete, le operazioni aritmetiche con 
tali numeri risulteranno molto lente. Inoltre, il codice macchina 
risultante sara' molto piu' grande, e questo puo' essere inaccettabile 
in sistemi a microcontrollore.
Piuttosto, se proprio vuoi sfruttare un pochino il C++ rispetto al C, 
definisci le htons/l in modo che convertano dal tipo nativo a un tipo 
custom, e le ntohs/l in modo che convertano dal tipo custom al tipo 
nativo. Tale tipo custom serve solo a comunicare con il mondo esterno. 
In tal modo eviti di dimenticarti le conversioni o di fare conversioni 
doppie.
-- 
Carlo Milanesi
http://carlomilanesi.wordpress.com/

 tali numeri risulteranno molto lente.
Hi risolto ridefinendo gli operatori; in generale ricevuto copiato il
valore big endian dalla rete alla memoria, a me occorre un tipo di
dato che contenga la traduzione. le operazioni aritmetiche  nel mio
stack protocollare si limintano a pochi mascheramenti di alcuni bit
nei campi degli header. Ho anche controllato il codice assembly
generato, e nella versione ottimizzata questo produce una sola
istruzione in più (rev16).

Newsgroup: it.comp.lang.c++
Titolo: [Re:] Come copiare un file su Hdd in un altro.

Non riesco a copiare il contenuto di un file esistente in un file da creare.
Ho provato con fopen("w") ma ottengo un errore durante l'esecuzione; ho
anche provato a creare un puntatore per ciascun file ma il compilatore mi da
errore quando arriva all'esecuzione dell'uguaglianza tra il contenuto dei
due puntatori.
Per favore aiutatemi.

 due puntatori.
Uhm... ti consiglio di ristudiarti il capitolo sui files. Comunque
riporta il codice che hai scritto e vediamo di correggerlo.
EMG
Newsgroup: it.comp.lang.c++
Titolo: C++

C++  is very hard. -_-a;;;; 

    ]
[ 
http://cikkox.altervista.org
      ]
[ GNU/Linux Registered User #365929 ]
[ GnuPG/OpenPGP key available       ]
Newsgroup: it.comp.lang.c++
Titolo: problema

quello che segue è un programma che dovrebbe calcolare il maggiore di 4
numeri interi inseriti dall'utente, il problema è che non lo fa. Qualcuno sa
dove ho sbagliato?
grazie
davide
#include <iostream.h>
#include <stdlib.h>
int maggiore1 (int numero1, int numero2) {
 if (numero1 > numero2)
  return numero1;
 else
  return numero2;
  }
int maggiore2 (int numero3, int numero4) {
 if (numero3 > numero4)
  return numero3;
 else
  return numero4;
 }
void main () {
int numero1, numero2, numero3, numero4;
cout <<"\n?"; cin >> numero1;
cout <<"\n?"; cin >> numero2;
cout <<"\n?"; cin >> numero3;
cout <<"\n?"; cin >> numero4;
if (maggiore1 > maggiore2)
 cout <<"\n\nmaggiore = " <<maggiore1;
else
 cout <<"\n\nmaggiore = " <<maggiore2;
 cout <<"\n";
 system ("pause");
 }


Non l'ho provato, ma adesso dovrebbe andare.
Ciao,
   Michele
---
 L.P. Deutsch "L'iterazione è umana, la ricorsione è divina"
:-)

  }
perchè non...
#include <iostream>
#include <algorithm>
int main()    {
    int valori[4];
    cout <<"\n?"; cin >> valori[0];
    cout <<"\n?"; cin >> valori[1];
    cout <<"\n?"; cin >> valori[2];
    cout <<"\n?"; cin >> valori[3];
    sort(valori, valori+4);
    cout << "il maggiore è " << valori[3] << endl;
}
in questo modo non hai neanche bisogno di <cstdlib>.

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

Qualcuno sa risolvere in maniera + efficiente questo problema. Di seguito vi
riporto il testo e la mia proposta
Data una matrice n*n calcolare la clessidra (cioè la prima e ultima riga +
gli elementi delle diagonali) posizionando la somma degli iesimi elementi di
ogni  riga in un array monod. avente indice pari al iesima riga degli
elementi.
ES:
1  1  1  1
0  1  1  0
0  1  1  0
1  1  1  1
vett[1] = 4; vett[2] = 2; vett [3]=2; vett[4] =4;
Mio programma :
mcolonna = dim;
    for (riga = 1; riga <= dim; riga++)
      {
        vett[1] += matrix[1][riga];
        vett[dim] += matrix[dim][riga];
        if ( riga  == (dim / 2) + 1 )
          vett[riga] += matrix [riga][riga];
         else
              if (( riga > 1 && riga < dim )
                             ||
               ( mcolonna > 1 && mcolonna < dim ))
               {  vett[riga] += matrix[riga][riga];
                  vett[mcolonna] += matrix[mcolonna][riga];
               }
        mcolonna--;
      }

 riporto il testo e la mia proposta
Se ho capito bene il problema:
for ( int i=0; i<n; ++i )
    vett[i]=matrix[i][i]+matrix[i][n-i-1];
for ( int i=1; i<n-1; ++i ) {
    vett[0]+=matrix[0][i];
    vett[n-1]+=matrix[n-1][i];
}
--
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: Platform SDK per MS VC++ express 2005

Ciao,
ho installato Microsoft Visual C++ express 2005,e il passo successivo
consigliato da Microsoft è quello di installare il "Microsoft Platform
Software Development Kit".
Premetto che sono ancora piuttosto inesperto nel mondo della
programmazione,per cui vi faccio questa semplice domanda:cos'è questo PSDK
e a cosa serve (a grandi linee,non credo che basterebbero poche righe per
descrivere cosa c'è in un download da 400 MB)?
Colgo l'occasione per fare una domanda aggiuntiva:i programmi che scrivo
con questo IDE con quali sistemi operativi saranno compatibili?
Grazie!

 con questo IDE con quali sistemi operativi saranno compatibili?
dipende. Se usi solo le cose standard del c++, con tutti quelli in cui 
c'e' un compilatore che segue lo standard (ovvero moltissimi). Se usi 
cose per lo specifico sistema, solo con quel sistema. Ricorda che in 
questo newsgroup si parla solo di c++ standard (che e' quello che 
dovresti imparare per primo). Se ti interessano le sdk di win, puoi 
chiedere su it.comp.programmare.win32.
Ciao!
Zeppe

 
Dipende.
Il codice sorgente C++ e' (relativamente) portabile e _ricompilabile_ su 
altre piattaforme che hanno un compilatore C++ compliant con lo standard 
del linguaggio SE scritti in modo tale da essere compliant con il 
suddetto standard e se NON usano librarie aggiuntive specifiche di una 
piattaforma.
Il che vuol dire che se fai un programma C++ che usa l'SDK di Windows, 
tendenzialmente potra' essere compilato ed eseguito solo su piattaforme 
Microsoft Windows.
-- 
Roal Zanazzi

 Microsoft Windows.
La mia domanda in effetti era relativa a su quali versioni di windows
girerebbero i programmi

 girerebbero i programmi
 >
Dipende. (ancora :-)
L'API di Windows puo' cambiare da versione a versione. In genere nuove 
funzioni vengono aggiunte e quelle considerate "obsolete" vengono 
lasciate ma se ne sconsiglia l'uso; questo perche', in linea teorica, la 
Microsoft potrebbe decidere di eliminare le funzioni obsolete passando 
ad una nuova versione del sistema operativo.
Semplificando diciamo che l'SDK attuale permette la creazione di 
programmi che Microsoft garantisce funzionanti sulle versioni di Windows 
attualmente supportate dal produttore; tale lista si trova sul sito 
della Microsoft ma al momento non riesco a ricordare dove cercarla, sorry.
-- 
Roal Zanazzi

Newsgroup: it.comp.lang.c++
Titolo: Manualistica per motore grafico 3D

Cerco manualistica su internet o qualce titolo di buon libri per fare un
motore grafico 3D in VISUAL C.
Sono disposto anche a collaborare con altri per questo grandre progetto.



Interessante ma inumanamente dispendioso in termini di tempo
Guarda qua: 
http://www.cg.cs.tu-berlin.de/~ki/engines.html
Puoi partire guardando cosa c'e' gia in giro e farti un idea.

 wrote in message
news:7bhqs0$5ag$1...@fe1.cs.interbusiness.it...

Newsgroup: it.comp.lang.c++
Titolo: Liste concatenate

Chiedo scusa se la domanda è banale, ma mi interesserebbe sapere perchè si
sceglie una lista concatenata, non si fa prima a usare un array ed allocarlo
dinamicamente!
Grazie infinite a chiunque risponda!
Ciao
Francesco

dinamicamente!
Sě ma la dimensione potrebbe dover cambiare a run-time, allora quanto
lo crei grande l'array?
-- 
Marco Barisione (ICQ 84277092)

 sceglie una lista concatenata
Ad esempio per evitare di spostare grandi quantità di memoria quando si
inseriscono o si eliminano elementi in mezzo alla lista.
Marco

Newsgroup: it.comp.lang.c++
Titolo: Quesito sulla modifica di un programma senza ricompilazione

Salve a tutti
Vi vorrei porre un problema sicuramente di facile risoluzione per voi.
Devo costruire un programma le cui classi quando vengono inizializzate
devono andare a prendere i dati di ingresso da un File esterno in modo che
si possa modificare il programma semplicemente cambiano il File senza dover
ricompilare il sorgente.
Il mio dubbio è questo..
1)E' più conveniete che il mio file di caricamento sia un txt, e che con
alcune funzioni lo scorra per cercare le informazioni di caricamento,,
oppure:
2)E' meglio usare come file di caricamento un database.. magari access in
modo da avere tutte le variabili già incapsulate? In questo caso qualcuno mi
sa dire come gestire il database dal c++ o dove posso trovare qualche
informazione utile.
Grazie Zero

 informazione utile.
Dipende da cosa ci devi fare. Per informazioni sull'uso di database col 
C++ cerca con google a proposito degli strumenti che intendi usare, 
perche' il linguaggio standard non prevede queste funzionalita'.
Ciao,
Nicola

Newsgroup: it.comp.lang.c++
Titolo: Monitoraggio Carico CPU

Salve al NG,
    Come posso monitorare il carico della CPU (In percentuale) in ambiente
Win9x ed NT in maniera simile al monitor di sistema ?
    Linguaggio/Ambiente utilizzato C++Builder 3 e Visual C++ 6

...

Usa la libreria "Tool Help".  Puoi accedere alle sue funzioni con
    #include <tlhelp32.h> 
Con questa puoi fare uno "snapshot" dei processi presenti sul
sistema in un dato istante, enumerarli tutti, e per ognuno ottenere
con GetProcessTimes i dati sul tempo di CPU usato, ecc ecc.
Alex


Matt Pietrek, nel numero di Aprile 1996 del Microsoft System Jurnal,
espone chiaramente come ottenere i "Performance Data" dal registry,
consultando le chiavi
HKLM\Software\Microsoft\Windows NT\Current Version\Perflib\009 e
HKEY_PERFORMANCE_DATA.
Dovrebbe essere possibile consultarlo su 
http://msdn.microsoft.com
.
Anche l'SDK dovrebbe avere i sorgenti del PVIEW e del PERFMON.

Grazie ad entrambi. Nelle soluzioni presentate (libreria e/o registry), se
cerco bene,  trovo anche come monitorare i byte letti e scritti al secondo
della connessione telefonica ?
Inferno.

 
X Windows95 ToolHelp32 e' OK ma non x NT
devi usare le funzioni della PSAPI.DLL che trovi sul WIN32 SDK (nell
example pfmon)
(NB la .LIB e' nell'example e non nelle library del devstudio)
ZEC.

della connessione telefonica ?
Non di certo nella libreria ToolHelp, forse c'e` qualcosa in RAS.
Alex
Newsgroup: it.comp.lang.c++
Titolo: manuali

Sapete se online è possibile trovare qualche pdf con un libro che mi insegni
il C++ ? Inglese o Italiano non fa differenza.
Grazie mille
----------------------------------------------------------------------------
------------------------------------------
"Evidentemente Euclide non dava molta importanza agli aspetti pratici della
sua disciplina: infatti si racconta che, quando un allievo gli chiese che
utilità avesse lo studio della geometria, Euclide si rivolse al suo schiavo
dicendogli di dare all'allievo una monetina << perchè ha bisogno di trarre
guadagno da ciò che impara>>"

 insegni il C++ ? Inglese o Italiano non fa differenza.
Come da innumerevoli messaggi precedenti:
www.bruceeckel.com
Il libro si chiama: "Thinking in C++"
E' diviso in due volumi, di cui uno base e uno leggermente piů avanzato.
E' liberamente scaricabile e il link da cui scaricarlo lo trovi partendo
dal sito dell'autore.
ciao
--
Gerolamo

Newsgroup: it.comp.lang.c++
Titolo: il dynamic_cast fa parte della RTTI?

Come da oggetto. Mi chiedo se quando si disabilita la RTTI dalle opzioni 
del compilatore si disabilita anche il dynamic_cast (mi pare di sì). 
L'abilitazione della RTTI che costi ha? Immagino che mi costi un po' di 
spazio per ogni classe... ma non ho idea di come venga implementata di 
solito.
E.

?manu* ha scritto:

Mi pare proprio che sia così, RTTI è necessaria per dynamic_cast e typeid:
http://en.wikibooks.org/wiki/C%2B%2B_Programming/RTTI
Si dice abbia costi in termini di prestazioni, ma di sicuro dipende
fortemente dall'implementazione del compilatore.

Federico Zenith ha scritto:

Io mi aspetterei (per come posso immaginare che venga implementata) che 
se non la usi non dovrebbe costare in prestazioni. Semmai solo in 
occupazione di memoria. Mi aspetterei anche che lo spazio occupato da 
ogni oggetto non cambi, ma solo ci dovrebbe essere più spazio occupato 
da ogni variabile globale (in proporzione al numero di classi).
E.
Newsgroup: it.comp.lang.c++
Titolo: Aggiornare la barra dell applicazioni.

Salve,
ho iniziato da poco a programmare in Builder 4.0, e vorrei sapere come
aggiornare continuamente il titolo sull'icona del mio programma sulla barra
delle
applicazioni di windows.
Purtroppo nella guida non ho trovato niente in merito ed ho necessità di
"scoprirlo".
Un altro favore..: se in un pc non ho accesso alla directory di sistema di
windows, come posso fare a installare comunque un mio active x?
Grazie anticipatamente.

sei OT, qui si parla di C++ puro, indipendentemente dalla piattaforma di
utilizzo...
scrivi su it.comp.programmare.win32, troverai tante persone felici di
aiutarti!
Ciao, Davide.

Newsgroup: it.comp.lang.c++
Titolo: c++Builder:help

Ciao, ho un problema: non so come far cambiare font ad una
sottostringa di un "memo" senza che cambi il font di tutto il resto
del memo.
Per chi avesse voglia e tempo: come posso fare un editor che mi scriva
in grassetto le parole che seguono un determinato simbolo, ad esempio
"\"?
Grazie mille a tutti coloro che vorranno aiutarmi!!! 

 Grazie mille a tutti coloro che vorranno aiutarmi!!!
-- 
// ----------------------------------------------
// Fausto Fabbioni            
// E-Mail: 
fabb...@freelance.it
// ----------------------------------------------

 "\"?
Devi usare il componente TRichEdit al posto di TMemo.
Poi vai qui 
http://classic.physiol.cam.ac.uk/users/ljw1004/cbuilder/
 
per recuperare un esempio su come usare il componente per
implementare una syntax highlighting.
_________________________________________
Roberto Gerola
e-mail: 
roge...@tin.it
www: 
http://space.tin.it/computer/rgerola

 implementare una syntax highlighting.
Correzione al mio precedente post.
L'indirizzo corretto di Lucian's C++Builder Resources e`:
 
http://www.cl.cam.ac.uk/~ljw1004/cbuilder/index.html


Newsgroup: it.comp.lang.c++
Titolo: IMPARARE IL C++

VORREI IMPARARE A PROGRAMMARE IN C++, MA NON HO NESSUNA ESPERIENZA DI PROGRAMMAZIONE, ESISTONO DEI CORSI NELLA MIA CITTA', PESCARA ?
-----------------------------------------------------------------
Get free personalized email from Lycos at 
http://it.lycosmail.com
--
Posted from 
webb2.iname.net
 [165.251.4.132]
via Mailgate.ORG Server - 
http://www.mailgate.org

VORREI IMPARARE A PROGRAMMARE IN C++, MA NON HO NESSUNA ESPERIENZA DI
PROGRAMMAZIONE, ESISTONO DEI CORSI NELLA MIA CITTA', PESCARA ?
Ciao!
Nel frattempo dai un'occhiata al sito
http://www.geocities.com/SiliconValley/Foothills/6336/
 dove trovi tra
l'altro un tutorial veramente ben fatto sul C++
Ciao
Diego




Newsgroup: it.comp.lang.c++
Titolo: Sim card scadute

Certo sarei curioso di sapere che fine fanno i soldi che rimangono
accreditate sulle sim card scadute.
A sentire loro rimangono "bloccati" sulla card ma e' palese che alla
fine invece rimangano bloccati nella loro "saccoccia" .
Ma non c'e' un modo semplice per riaverli indietro ? 
Secondo me si tratta di una vera e propria "appropriazione indebita".

Certo sarei curioso di sapere che fine fanno i soldi che rimangono
Sorry ,
stavo caricando il newsreader quando all'improvviso e' partito un
colpo.....
Newsgroup: it.comp.lang.c++
Titolo: Suono

Salve, mi piacerebbe sapere come devo fare per avviare la riproduzione di un
file .wav in c + + quando premo un pulsante. Uso Borland c++ builder
3.Grazie

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 
forums.borland.com
 (in inglese)
Grazie,
Nicola Musatti
Newsgroup: it.comp.lang.c++
Titolo: SHFileOperation non supporta i nomi di file lunghi

Effettuando una copia di file con SHFileOperation ho riscontrato che non
supporta i nomi di file lunghi ma anzi chiede di inserire un nome valido
asserendo che la destinazione non supporta, appunto, i nomi lunghi. Eppure
la copia e' da hard disk ad hard disk...
Chi ne sa di piu'?
--
Byez
Stefano Tempesta
temp...@tin.it
http://tempesta.freeweb.org

...

Newsgroup: it.comp.lang.c++
Titolo: ASP.NET e C++

Salve a tutti,
 mi sto avvicinando da poco al 
ASP.NET
,
 so che supporta come linguaggi:
 
ADO.NET
, Visual Basic, JScript, C# e C++.
 Io vorrei usare il C++. [Utilizzo dev c++ 4.9.9.2]
 Ho gia installato sul mio windows 2000 professional il
 .NET Framework 1.1.
 Cosa mi occorre (software/compilatori/estensioni/ecc..)
 per scrivere codice C++ nella pagine .aspx?
grazie ancora!

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)
Grazie,
Nicola Musatti

Newsgroup: it.comp.lang.c++
Titolo: switch case errato?

ho implementato la funzione di movimento in due modi, nel primo non
funziona, nel secondo con if/else funziona, perchč?
inoltre quale č la procedura per fare un switch case con i numeri anzichč le
lettere?
void labirinto::aggiorna_p(int &I, int &N, char domanda)
{
switch (domanda)
       {
       case 'w':
       case 'W':
       mappa[I-1][N] = 'P';
       break;
       case 's':
       case 'S':
       mappa[I+1][N] = 'P';
       break;
       case 'd':
       case 'D':
       mappa[I][N+1] = 'P';
       break;
       case 'a':
       case 'A':
       mappa[I][N-1] = 'P';
       break;
       default:
       break;
       }
}
void labirinto::aggiorna_p(int &I, int &N, char domanda)
{
if (domanda == 'w') {mappa[I-1][N] = 'P';}
else if (domanda == 's') {mappa[I+1][N] = 'P';}
else if (domanda == 'd') {mappa[I][N+1] = 'P';}
else if (domanda == 'a') {mappa[I][N-1] = 'P';}
else cout << " riprova";
}
grazie

 ....
Prima di passare domanda allo switch usa la funzione tolower, cosě
eviti quel tipo di scrittura.
Inoltre se il default non controlla niente usa continue, tanto
l'esecuzione mi sembra di capire deve cmq uscire dallo switch.
Poi scusa, ma non capisco l'assegnazione: intendi dare a
quell'elemento il valore di ASCII di P?
Tieni presente che sono un "niubbo" e potrei dirti fischi per
fiaschi....
Ciao

 funziona, nel secondo con if/else funziona, perchè?
	Cosa intendi per "non funziona"?
_dave_
Newsgroup: it.comp.lang.c++
Titolo: Interfaccia per una classe!

 
http://web.tiscalinet.it/scuolafacile

 wrote in message 8kc3p9
| P.P.S. Se compilo non da' errori! Ma se lo eseguo, ottengo:
| Linker Error: Undefined symbol GParser::EvalExp(...) in module calc!.cpp
| Linker Error: Undefined symbol GParser::SetExp(...) in module calc!.cpp
| Linker Error: Undefined symbol GParser::GParser() in module calc!.cpp
sembrerebbe un classico errore di linkaggio:
prova con
cl calc!.cpp gparser.cpp /TP /GX

 cl calc!.cpp gparser.cpp /TP /GX
Io uso Borland Turbo C++ v3.00 per dos!
Ho controllato la cartella \bin ma non ho trovato il file da te citato! Però
ho visto il file Tlink.exe. Ho provato a usarlo senza parametri... ma non ha
funzionato!
Il risultato è stato:
Turbo Link  Version 5.0 Copyright (c) 1992 Borland International
Fatal: Bad object file record in calc!.cpp near module file offset
0x00000000


 ha scritto nel messaggio
| > sembrerebbe un classico errore di linkaggio:
| > prova con
| > cl calc!.cpp gparser.cpp /TP /GX
|
| Io uso Borland Turbo C++ v3.00 per dos!
il tuo listato era generato dal VC++... come si evince, oltre che
dall'include col nome kilometrico iniziale, anche da:
| #if _MSC_VER >= 1000
| #pragma once
 | #endif // _MSC_VER >= 1000
col c++ (di cui tra l'altro la Inprise ha rilasciato gratis la versione
5.5)
dovresti digitare
bcc calc!.cpp gparser.cpp -P

 bcc calc!.cpp gparser.cpp -P
Grazie!
Cmq ho risolto il problema includendo sia la definizione della classe, sia
la sua implementazione all'interno dello stesso file.h! E sono riuscito a
farlo funzionare con le mie librerie modificate!
Però proverò a fare come dici tu! Preferisco avere la dichiarazione e
l'implementazione della classe in file diversi!
Nelle mie librerie "adattate" quelle voci non ci sono! Ma se utilizzo quelle
originali possono dare problemi col C++, a causa dei direttive che mi hai
indicato?
Il compilatore della Inprise è buono? Non lo conosco! Che differenze ci sono
col mio Borland?
Grazie Ancora!
CIAO
ANDREA

 col mio Borland?
Inprise e` la stessa ditta che un tempo era Borland.  Perche` abbiano
cambiato
nome, boh.  Un'ipotesi (sarcastica) che ho letto e`: per impedire
all'ufficio
assunzioni della Microsoft di trovarli nell'elenco del telefono (visto che
all'epoca
MS gli stava rubando tutti i migliori tecnici a suon di $$$).
Alex

Newsgroup: it.comp.lang.c++
Titolo: c++:acquisizione dati esterni

in che modo è possibile acuquisire dati esterni con il c++?
L'acquisizione necessita per forza dell'impiego di una scheda di
acquisizione dati? E se i dati da acquisire fossero di tipo binario
(acceso-spento)?

 (acceso-spento)?
Cosa ci sarebbe di strano? Quella e' la forma di trasmissione piu' 
naturale per un computer, e spesso anche l'unica possibile. Ma forse non 
capisco il tuo problema... prova a fare un esempio.
-- 
Devaraja (Xdevaraja87^gmail^c0mX)
Linux Registerd User #338167
http://counter.li.org
Newsgroup: it.comp.lang.c++
Titolo: conversione "double" -> "char*"

    	Ciao! Esiste una routine o un modo per convertire un numero in 
formato double in una stringa di caratteri e viceversa?
Ciao, Matteo.

formato double in una stringa di caratteri e viceversa?
guardati stdlib.h
e le funzioni ato* ()
cod



....
std::stringstream  myStringStream;
double                myDouble;
myStringStream << myDouble;
std::string myString = myStringStream.str();
......
se a questo punto ti serve un const char*
puoi usare l'operatore c_str() su myString.
spero di essere stato chiaro. 
Ciao
-- 
Posted from [194.214.173.28] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

    	ok! ma come faccio, poi, a convertire una stringa di caratteri in un 
"double"?
    	Ciao e grazie!

 Ciao, Matteo.
ciao
Massimo

     	Ciao e grazie!
il procedimento e' analogo. 
Solo che invece di scrivere sullo stringstream, leggi:
#include <sstream>
// ...
std::stringstream ss( "3.141596" );
double pi;
ss >> pi;
saluti,
fabio

 puoi usare l'operatore c_str() su myString.
anche senza fare tutto questo rigiro... bastava una sprintf() !
Anto
-- 
Antonio Cuni, 19 anni, studente
Brainbench C++ Master: 4.6, higher than 98% of all previous test takers.
C Language: 3.32, higher than 79% of all previous test takers.
Guida C/C++ di Programmazione.it: 
http://cpp.programmazione.it

 Guida C/C++ di Programmazione.it: 
http://cpp.programmazione.it


 e se hai una std::string in mano devi fare:
nel subject c'e' scritto che si vuole un char* :-))
Anto
-- 
Antonio Cuni, 19 anni, studente
Brainbench C++ Master: 4.6, higher than 98% of all previous test takers.
C Language: 3.32, higher than 79% of all previous test takers.


 C Language: 3.32, higher than 79% of all previous test takers.
idem


 
Spero di non sbagliarmi nel dire che se dopo lo stream non interessa (
meglio se si intende consumare tutto il contenuto del buffer),
myStringStream(myString);
sia anche + efficiente...
Pero` ripeto non sono sicurissimo!
Paolo

 Pero` ripeto non sono sicurissimo!
Mica ho capito, ho usato myStringStream per buttarci dentro un
double e tirare fuori una stringa.....


 double e tirare fuori una stringa.....
La versione da me suggerita dovrebbe (notare il condizionale, non ho
lo standard a portata di mano) evitare la copia dal buffer dello
stream a quello della stringa... Dal poco a mia disposizione in questo
momento credo che
questa implementazione faccia piu` o meno quello che farebbe una swap.
Tuttavia e` solo un sospetto che deriva dalla constatazione che
altrimenti
sarebbe (probabilmente) un overload superfluo.
Tutto cio` e` cmq una supposizione, non ho mai approfondito
l'argomento...
Certo basterebbe un veloce test per avere qualcosa di + concreto...
Paolo
Newsgroup: it.comp.lang.c++
Titolo: screen saver

Come posso fare per creare un mio screen saver in visual c++ ?
Ringrazio anticipatamente chi mi puņ aiutare !


vai a cercarti il codice d'esempio su 
www.codeguru.com
ciao.


trovi un esempio MFC (chiamato SAVER) nella documentazione del VC++ (tra i
samples MFC). In sostanza e' un'applicazione normale, a parte il fatto che
*deve* terminare quando riceve alcuni determinati messaggi (non me li
ricordo tutti: WM_MOUSEMOVE, WM_ACTIVATE, WM_KEYDOWN...) inoltre dovrebbe
gestire anche alcuni parametri da linea di comando, tipo -c (apre la
finestra di configurazione dello screen saver), -p (seguito da un intero che
identifica un handle di finestra, indica che lo screen saver deve essere
eseguito in modalita' "preview" all'interno della finestra passata, quindi
non a schermo intero) e cosi' via. Se vuoi informazioni piu' precise, posso
mandarti in privato l'ossatura di uno screen saver che realizzai qualche
tempo fa (in questo caso contattami a 
zul...@cyberqual.it
)
Ciao,
Gianfranco
Ciao,
Gianfranco

Newsgroup: it.comp.lang.c++
Titolo: [OT] Problemi di memoria con Borland C++ 3.1

Salve a tutti,
   installato il Borland C++3.1 quando compilo un programma di una certa
dimensione, mi dice "memoria esaurita"...Forse dovrei attivare la
memoria estesa(o espansa)..WIN 98 SE mi dice che non è
abilitato....AIUTOOO!!!
	Andrea Pollini



abilitato....AIUTOOO!!!
Passa al DJGPP. Lo trovi gratis su 
www.delorie.com
 .
Lavinia
WINWORD.EXE - ERRORE DI APPLICAZIONE
l'istruzione a "0x3017ff27"ha fatto riferimento alla
memoria a "0x02a3143c".La memoria non poteva essere 'read'.

Newsgroup: it.comp.lang.c++
Titolo: Borland C++ 5.5 "line command": problemi

Ho scaricato questo compilatore free dal
sito della Borland, ho settato tutte
le variabili d'ambiente, creato i file cfg
richiesti ecc. ma quando provo a 
lanciarlo, esempio:
bcc32 hello.cpp
Mi produce l'eseguibile hello.exe
ma non mi lancia in automatico il programma.
E' normale? Perche' vedo che c'e' una
opzione che dice al compilatore di
eseguire senza la compilazione, quindi
senza il run.
Vi Ringrazio
Ciao

eseguire senza la compilazione, 
          ^^^^^
eseguire  solo  la compilazione
pardon

 E' normale?
si
--
Gerolamo

si, č normale.
Il compilatore C++ prende in input i tuoi sorgenti e fa due passi
importanti:
1) compilazione: ciņ significa che i tuoi sorgenti vengono codificati in
linguaggio macchina (nel tuo caso solo hello.obj);
2) linking: ciņ significa che i vari file prodotti dal processo di
compilazione vengono uniti insieme (linkati) per costruire l'eseguibile
finale (nel tuo caso hello.exe);
tu hai la possibilitą di effettuare la sola compilazione.
Ad ogni modo, se fai sia la compilazione che il linking non significa che il
tuo programma verrą lanciato automaticamente, ma solo che hai creato un
eseguibile. Sta a te poi lanciarlo!!
Andrea
"Ale55andro" <AleXander.NoSpa...@albacom.IT> wrote in message
news:b3fl2v8m9fljokedd...@4ax.com...

Newsgroup: it.comp.lang.c++
Titolo: Guida al Visual C++

Sapete dove posso scaricare una guida completa in italiano sul Visual C++
6.0?
Grazie mille
Diego

 6.0?
Qui dove si parla di C++ standard forse no, ma su 
it.comp.programmazione.win32 e' piu' probabile ;)
-- 
/**
  * 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: Come iniziare a programmare in c++

Vorrei imparare a programmare in c++, ma non so da dove partire cosě avrei
bisogno di un piao di informazioni.
Innanzitutto c'č qualche sito sito in italiano dove scaricare lezioni di
c++e oppure un buon libro da acquistare a questo scopo?
E poi come posso procurarmi un compilatore, possibilimente gratis?
Grazie, Marco

Ho da poco preso il libro fondamenti di C++ di deitel & deitel, caldamente
consigliatomi
All'interno anche la learning edition di Visual C++
Altrimenti cerca devC++ ( x avere un ambiente visuale)
Andrea

Newsgroup: it.comp.lang.c++
Titolo: chiudere un'applicazione

ciao,
sto scrivendo un'applicazione in c++
tale applicazione gira su un server e deve poter chiudere un'altra
applicazione da me creata su vari pc client collegati in reta al server.
quale metodo e quale libreria devo usare per poter terminare le applicazioni
client?
grazie
    Remo

remo wrote:

In linea di principio stabilisci una connessione sicura tra i due programmi
server e client, effettui un'opportuna identificazione ed invii un
messaggio al client che verrà interpretato come la chiusura della
connessione e dell'applicazione.
-- 
Domenico Testa - Studente

SI ,ma quale metodo e quale libreria devo usare per poter terminare le
applicazioni
 client?
 grazie
     Remo

 ha scritto nel messaggio
news:6qlPa.165150$lK4.4...@twister1.libero.it...

la normale funzione EXIT ???????????
Newsgroup: it.comp.lang.c++
Titolo: BCB4 bloccato !!!!!

Salve a tutto il NG,
sto (stavo) lavorando con  C++ Builder 4 quando all’ennesimo caricamento
di un progetto dal menu Dati recenti il Builder si e' bloccato sulla
videata di presentazione. Da allora ho provato di tutto ma ogni volta
che lancio il Builder il PC si blocca irrimediabilmente (non si sposta
nemmeno il mouse).
Ho provato in sequenza:
- Reinstallato il Builder sopra quello esistente
- Disinstallato e reinstallato il Builder
- Reinstallato il Builder con la sola opzione relativa al registro di
Windows (non mi ricordo bene cosa dice..)
 Risultato: niente è cambiato.
C’è qualcuno che puo’ darmi qualche altro suggerimento prima di
reinstallare Windows da zero ?
Grazie e saluti, Alex.T

 wrote:

io direi di provare cosi':
1 Disinstallalo
2 Cancella tutti i file e le cartelle residui che possono essere
rimasti
3 Cerca nel registro TUTTE le chiavi ad esso relative e cancellale
tutte manualmente
4 reinstalla :D
Tentar non nuoce 
Ciao
--------------------------------------------------
Brayan Fix Kirys Solfory
E-Mail: 
Ki...@technologist.com
 
For Free Software go to: 
http://Kiryssoft.cjb.net

reinstallare Windows da zero ?
Non reinstallare Windows, tanto il tuo problema non verrebbe comunque
risolto e perderesti solo tempo prezioso.
Prova a fare quello che ti ho appena detto ma prima di farlo
assicurati che il compilatore parta in modalità VGA.
Il Ghenio
-----
Douce Sarah, p'tite aux yeux pleins de joie
Le sourire est avec toi
Tu seras capable
Le sourire aimable
D'oublier le mal, ma p'tite chérie
(Princess Sarah 1985)
-----
Newsgroup: it.comp.lang.c++
Titolo: Grafici cartesiani in VC++ 6.0 con MFC

Ho la necessità di "graficare" dei dati tipo x-y in una finestra View in un
applicativo che sto (cercando) di scrivere in VC++ 6.0 utilizzando MFC.
Esistono routine grafiche free già scritte o devo re-inventare la ruota ???
Grazie !!!
(sono all'inizi, scusatemi....) (non così troppo poi.....)
nzan...@libero.it

Ciao,
Questo newsgroup si occupa del lingaggio 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.linux.development
                it.comp.os.linux.development
Per C++Builder: i gruppi borland.public.cppbuilder.*, disponibili sul
                server 
forums.borland.com
 (in inglese)
Grazie,
Nicola Musatti

Newsgroup: it.comp.lang.c++
Titolo: Richiamo Funzioni

Come faccio a richiamare una funzione di un modulo da un altro modulo?
Ho provato a dichiarare l'inclusione di quel modulo ma niente.

Ho provato a dichiarare l'inclusione di quel modulo ma niente.
Basta che nel modulo chiamante sia dichiarato il prototipo della
funzione da richiamare e il linker colleghi fra loro i vari moduli.
Se la funzione e' dichiarata in un namespace diverso va esplicitato
anche il namespace .
ciao

Newsgroup: it.comp.lang.c++
Titolo: Come mai alcune api non sono contemplate

Ho trovato un esempio di utilizzo dell'ape SetFileTimeWrite sulla msdn, ma
quando l'ho cercata nel file win32api.txt, non l'ho trovata. Come mai? E' la
mia sfortuna o ci sono api minori che non sono strettamente necessarie
(infatti la suddetta ape, puņ essere rimpiazzata dalla migliore
SetFileTime).
Aspetto risposte in gran numero :-)
Grazie
Franco Stefanelli - Developer [VB5SP3]
- 
fras...@franco.geocities.com
 -
[Remove 'franco.' from my e-mail address in order to write me]
**************************************************************
http://www.geocities.com/SiliconValley/Haven/2388/
      *** Franco's
Developing Site ***
http://freeweb.aspide.it/freeweb/AnFStefanelliweb
       ***          My own
*** UPDATED!!!
http://www.reolcity.com/rolmagazine/home.html
           *** The Web-Magazine
which I write for ***


SetFileTimeWrite(), per quanto ne so NON e' una funzione delle API WIN32...
--
Roal Zanazzi
z...@iol.it

SetFileTimeWrite(), per quanto ne so NON e' una funzione delle API WIN32...
Infatti č quello! Resta il fatto che sulla msdn c'č un esempio di utilizzo
di quell'ape e il tutto funziona!
ByeZ...


Newsgroup: it.comp.lang.c++
Titolo: C++ Builder

In attesa che mi arrivi un buon libro volevo sapere quale e' il comando per
cambiare il testo di una Tstring del memo box.
Vorrei inoltre sapere come assegnare ad una stringa il valore immesso da un
utente in un edit-box...
--
Bye
§uperbep§
mail: 
supe...@softhome.net
UIN 22294495

Vorrei inoltre sapere come assegnare ad una stringa il valore immesso da un
utente in un edit-box...
AnsiString stringa = Edit1->Text;
--
Stefano Tempesta
PC Service Software
http://www.tempesta.cc.st
s.tem...@pcs-online.it
Newsgroup: it.comp.lang.c++
Titolo: Formattare disco in c,c++

Chiunque sia in grado di spiegrami come formattare un floppy
utilizzando il c o il c++ (per poi poterlo inserire in un programma)
e fosse cosi' gentile da illustrarmene il procedimento gli sarei
davvero grato!  
Grazie in anticipo

Chiunque sia in grado di spiegrami come formattare un floppy
dipende dal sistema oprativo ! e anche dal file system.
se lo devi fare sotto dos cerca la lista di Ralph Brown e guarda i
servizi dell'INT 13h.
Buon Natale a tutti
[ranger, email: 
ran...@queen.it
]

Newsgroup: it.comp.lang.c++
Titolo: Puntatori, classi base e classi derivate

Salve a tutti. La mia domanda č la seguente:
ho le seguenti classi:
class base{/* ... */}
class derived:public base{/* ... */}
class derived2:public derived{/* ... */}
Ora mettiamo il caso che io abbia una variabile di tipo base* , e che lo
voglia usare dinamicamente per farlo puntare a oggetti di tipo base, derived
o derived2 , e che io non sappia a priori in un dato momento a quale tipo di
oggetto punti (base,derived o derived2). C'č un modo per sapere
"dinamicamente" qual č il tipo attualmente puntato ? Esempio:
base* p;
base b;
derived d;
derived2 d2;
p=&b;
// Qui vorrei trovare un metodo per sapere che l'oggetto puntato attualmente
č di tipo base
p=&d;
// Qui vorrei trovare un metodo per sapere che l'oggetto puntato attualmente
č di tipo derived
p=&d2;
// Qui vorrei trovare un metodo per sapere che l'oggetto puntato attualmente
č di tipo derived2
... E' possibile ?
Grazie.

 Grazie.
E' possibile con rtti, typeid, dynamic_cast e compagnia bella, ma se
vuoi fare qualcosa del tipo
if (classe1) {
// codice classe1
}
id (classe2) {
// codice classe2
}
devi sapere che e' un brutto approccio, comunque qui e' descritto come
fare.
http://www.parashift.com/c++-faq-lite/smalltalk.html#faq-30.3
Un approccio migliore e' senz'altro questo
http://www.parashift.com/c++-faq-lite/virtual-functions.html#faq-20.4
perche' il dynamic_cast e' costoso a tempo di esecuzione, e poi il
desing e' migliore.
Scarica thinking in c++ vol.2 c'e' un intero capitolo su rtti.
ciao

 ciao
Newsgroup: it.comp.lang.c++
Titolo: Inizializzazione membro statico, modo piu' breve?

Salve,
vorrei sapere secondo voi quale e' il modo alternativo piu' breve in C++ per
inizializzare un membro statico di tipo vector con un insieme predefinito
di valori, per quelle implementazioni che non supportano questo modo di
*comodissimo* di inizializzazione:
vector<int> X::v({1, 2, 3});
Io ho fatto una cosa di questo tipo, ma c'e' bisogno delle estensioni di gcc
per __VA__ARGS__, il che non mi piace molto:
#define CONSTRUCT(type, vect, array, ...) \
type array[] = {__VA_ARGS__}; \
vector<type> vect = vector<type>(array, array+sizeof(array)/sizeof(*array))
CONSTRUCT(int, X::v, a, 1, 2, 3);

 type array[] = {__VA_ARGS__}; \
idem, sorpresa totale.
Una volta ho spulciato il codice delle macro va_arg, 
va_start, va_end e compagnia, e facevano riferimento ad 
indirizzi di variabili. Da ciò ho desunto probabilmente 
errando che dovessero corrispondere a chiamate a RUNTIME. 
Qui invece tu usi quelle macro per risolvere indirizzi a 
compile time.
Che compilatore usi ? Sapresti dirmi, se he hai provati 
vari, se compilava su tutti o se qualcuno rifiutava la 
sintassi di macro con ellissi ?
grazie
ciao
soviet_mario


 per __VA__ARGS__, il che non mi piace molto:
Un'alternativa, che dovrebbe funzionare su ogni compilatore standard, e' 
questa:
vector<int> X = make_vector(1)(2)(3);
dove make_vector (e make_deque, make_list, ecc, ecc) li definisci in un 
header cosi` (sto frammento di codice l'ho adattato da una cosa che 
avevo letto in un articolo di alexandrescu ormai parecchi anni fa e me 
lo porto dietro molto spesso nei progetti :), forse con la key 
inline_container e alexandrescu su google trovi l'articolo e il codice 
originale, che pero` non funziona coi gcc recenti ):
template < typename T, class container = std::vector<T> >
class inline_container : public container
{
public:
     inline_container()
     {
     }
     inline_container(const inline_container<T> &v) :
         container(v.begin(), v.end())
     {
     }
     explicit inline_container(const T &a)
         : container(1, a)
     {
     }
     inline_container &operator()(const T &a)
     {
         this->push_back(a);
         return *this;
     }
};
template <typename T>
inline inline_container<T> make_vector(const T &a)
{
     return inline_container<T>(a);
}
    template <typename T>
inline inline_container< T, std::list<T> > make_list(const T &a)
{
     return inline_container< T, std::list<T> >(a);
}
template <typename T>
inline inline_container< T, std::deque<T> > make_deque(const T &a)
{
     return inline_container< T, std::deque<T> >(a);
}
Newsgroup: it.comp.lang.c++
Titolo: Inserire activeX in Borland

Ciao a tutti.
Sarei grata se qualcuno mi desse una mano a uscire dal mio tunnel...
Ho installato il Borland Developer Studio 2006. Voglio fare dei
progetti in C++ inserendo grafici nelle interfacce. Il mio problema è
che non riesco a fargli caricare le componentOne chart 7. Io procedo
così:
_ creo un progetto di tipo package  (.bpl)
_ Dal menù Component seleziono 'Import Component' poi 'Import ActiveX
Control'
_ Seleziono ComponentOne Chart 7...
_infine 'add unit to package.bdsproj project'
La mia intenzione sarebbe compilare il progetto per poi installarlo con
il wizard 'Component' ->'Install Package'.
A questo punto dovrei trovarmi l'icona delle chart nel  'Tool Palette'.
Purtroppo però la compilazione del progetto .bpl non va a buon fine e
mi dà questi errori:
[C++ Error] C1Chart2D7_TLB.h(10071): E2285 Could not find a match for
'ITitle_Dual::get_Font(IFontDisp * *)'
[C++ Error] C1Chart2D7_TLB.h(11697): E2285 Could not find a match for
'IAxis_Dual::get_Font(IFontDisp * *)'
....
Qualcuno mi sa dire dove sbaglio??
Vi ringrazio tantissimo.
Paola

Ciao,
Questo newsgroup si occupa del linguaggio C++ in quanto tale, e non di
aspetti specifici di particolari implementazioni, come ad esempio
C++/CLI. 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)
Grazie,
Nicola Musatti
Newsgroup: it.comp.lang.c++
Titolo: [?]Problema con C++ Builder 1.0

Salve a tutti,
E' la prima volta che scrivo in questo NG.
Ho comprato la rivista "Io Programmo" e nel cd-rom c'e la versione 1.0
del C++ Builder.
Dopo averlo installato, l'ho lanciato, ma succede una cosa strana: pur
comparendo il menu e la toolbar, non compare il background  (si vede
solamente l'immagine che uso come sfondo di win98)
E' capitato ancora a qualcuno? come posso rimediare?
Grazie

...


Ciao,
    e' assolutamente normale, del resto se ridimensioni una qualsiasi
finestra di un programma windows riesci a vedere il desktop.
L'ambiente della Borland e' organizzato in finestre indipendenti che non
occupano tutto lo schermo, di conseguenza si vede dietro
A presto :-)
Marco Abis su IRCnet #C++Warriors
http://welcome.to/C++Warriors
  interamente dedicato al C++
ca...@technologist.com


Grazie a tutti per la pronta risposta.
Certo che non e' molto bello da vedersi...
Sara' che forse sono abituato troppo bene con VB5.
Ciao!


E' capitato ancora a qualcuno? come posso rimediare?
E` tutto ok... il Bulder non usa una finestra principale al cui interno trovi le altre,
ma finestre fisicamente separate!
Paolo
------------------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
  G: Per concludere, possiamo chiedervi di commentare
     l'attuale panorama informatico?
  I: /* l'attuale panorama informatico */
------------------------------------------------------------------

Newsgroup: it.comp.lang.c++
Titolo: SPECIFICA E IMPLEMENTAZIONE

L' IMPLEMENTAZIONE di una classe puo' avvenire alla fine della classe
stessa? (o bisogna creare un file.cpp a parte?
Es. Classe.h
class classe {
public:
 /* funzioni membro */
private:
/*struttura dati*/
};   /*implementazione*/

 stessa? (o bisogna creare un file.cpp a parte?
La seconda che hai detto, a meno che tutte le funzioni-membro non
siano inline nel qual caso possono (e debbono) essere specificate nel .h
(o altro file incluso da esso).
Alex

stessa? (o bisogna creare un file.cpp a parte?
Generalmente nei file header non c'e' codice (leggi implementazione),
ma solo una dichiarazione dei contenuti del rispettivo file .cpp.


Solitamente l' implementazione della classe la si fa su un file .cpp a
parte, escluse però le funzioni inline che vanno implementate
direttamente nel file .h
Il Ghenio
-----
Jesse: Preparatevi a passare dei guai.
James: Dei guai molto grossi!!!
(Team Rocket)
-----
Newsgroup: it.comp.lang.c++
Titolo: casting sui puntatori

In  C++,  con il nome degli array(TAB), si indicano gli indirizzi, ergo se ho
una   variabile  puntatore  (*i),  questa  e`  predisposta  per  ricevere  un
indirizzo...   Ma  il  compilatore mi dice NOOO!!  Se uso il casting, che tra
l'altro  lo  usato  a  fortuna,  FUNZIONA  ,  ma  non me lo spiego il perche`
funziona cosi`!!
Il   compilatore  e`  l'ultima  versione  dello  StormC(Amiga),  fatto  molto
bene...supporta ANSI C++, quindi non credo sia colpa del compilatore!
char tab[][3]={
124,124,'a',     
125,125,'b'	// la tabella ha dei numeri a caso...
}
char *i="INIZIALIZZATO"
void main(void)
{
i=(char*)tab; --------- >>  QUESTA ASSEGNAZIONE FUNZIONA, MA NON SO PERCHE`!!
i=tab; ---------- >> SE FACCIO IN QUESTO MODO, IL COMPILATORE MI SEGNALA
...		     UN CONTRASTO TRA TIPI...PERCHE`???	
...
}
Chi mi aiuta??...mi risponde in EMAIL, poiche` non ho tempo di vedere 
tutte le NG, HELP ME!!
Ringrazio in anticipo chiunque!!
--------------------------------------- -- -  -
Vanamonde - 
kir...@freenet.hut.fi
--------------------------------------- -- - 

Vanamonde,
E' sicuramente vero che un puntatore e' pur sempre un puntatore e quindi
puo' contenere un indirizzo.
Ma...
Nel caso di vettori con piu' di una dimensione come nel tuo esempio il
compilatore ha bisogno di conoscere almeno una delle dimensioni per poter
fare i "calcoli" necessari quando si indirizza un elemento del tipo
"tab[x][y]".
In pratica il compilatore ti avverte che stai facendo un'assegnazione
anomala e ti obbliga ad usare l'operatore di cast se proprio vuoi
proseguire nell'intento.
Comunque il "nuovo" vettore non potra' essere utilizzato normalmente,
Infatti se provi a fare
i[1][2] = 'a';
il compilatore segnalera' errore, perche' "i" e' un puntatore semplice, al
limite un vettore ad una sola dimensione.
Se vuoi dichiarare un puntatore alla tua matrice devi scrivere in questo
modo:
char (*i)[3];
ossia un puntatore ad un vettore di 3 elementi. In pratica e' come se
"puntassi" alla prima riga della tua matrice, ma sei in grado di
indirizzare tutte le righe correttamente.
Nota che la dimensione della riga (il 3) e' obbligatoria, ed inoltre le
seguenti forme sono ancora delle altre cose:
char *i[3];		// vettore di 3 puntatori (a caratteri/stringhe)
char i[][3];		// matrice come la nostra "tab", ma purtroppo automaticamente
definita "extern"
Forse sono stato troppo scolastico, comunque spero di esserti stato di
aiuto.
Ciao, Angelo.


Vorrei farti notare che in tabella non hai messo dei numeri a caso,
ma l'ascii dei caratteri 124, 125 nonche' i caratteri 'a' e 'b'.
char tab[][] e' una tabella a 2 dimensioni che non puo' essere
referenziata con un puntatore ad un char. Dovresti specificare
cosa 'char* i' punta degli elementi di tab.
Ad esempio:
i = &tab[0][0]; // punta all'elemento 0 della tabella
oppure cosi'
i = tab[0]; //come sopra ma meno leggibile
Spero di essere stato sufficientemente chiaro. Per ulteriori
chiarimenti mailto:
osw...@tin.it
Buona fortuna, oswald.cpp
-- 
 Osvaldo Ciurleo - LucOs Sistemi Informativi
   C/C++: Sviluppo Consulenza Formazione
E-Mail:osw...@tin.it
 - 
http://web.tin.it/lucos