mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c++
Titolo: assegnazione tag

sono un novizio di c++ e quindi mi scuso delle banalità.
Sto usando C++Builder della Borland, ambiente visuale e simile al
Delphi, a me più consono.
Mi trovo a dover assegnare ad una variabile il tag del componente che
genera l'evento.
in Delphi potevo assegnare il nome sender per riferirmi al componente
ma in C++Builder non mi riesce.
Ho provato con
void __fastcall TForm1::CheckBox1Click(TObject *Sender)
{
variabile[Sender.tag]=1;
}
per assegnare un valore ad un elemento di un array, ma mi dà:
[C++Error] enacpp.cpp(26): Structure required on left side of . or .*.
e
void __fastcall TForm1::CheckBox1Click(TObject *Sender)
{
variabile[Sender->tag]='1';
}
mi dà:
[C++Error] enacpp.cpp(26): 'tag' is not a member of 'System::TObject'.
come risolvere il problema?

[C++Error] enacpp.cpp(26): 'tag' is not a member of 'System::TObject'.
tag in C/C++ non equivale a Tag.


ho provato anche come dici tu, ma l'effetto non cambia:
____________________________________________
void __fastcall TForm1::CheckBox1Click(TObject *Sender)
{
// qui c'è il problema di individuare i checkbox che attivano
l'evento!
// Sender? Owner?
if (Sistema.NumeriAttivi < 90) {
Sistema.stringapronostico[Sender->Tag] ='1';
                    Sistema.NumeriAttivi++;
                   }
                   else
                   {
                   Sistema.stringapronostico[Sender->Tag]='0';
                   Sistema.NumeriAttivi--;
                   }
StatusBar1->SimpleText="Numeri
Attivi:"+IntToStr(Sistema.NumeriAttivi)+"-";
}
___________________________________
[C++Error] enacpp.cpp(28): 'Tag' is not a member of 'System::TObject'.
forse dipende dal fatto che Sender è un puntatore? *
Con Owner al posto di Sender funziona, peccato che Owner sia la Form e
non i CheckBox....
Grazie

forse dipende dal fatto che Sender è un puntatore? *
E' chiaro. E' un problema dovuto al fatto che TObject non possiede la
proprieta' Tag.
In questo caso devi castare il puntatore :
Sistema.stringapronostico[((TCheckBox*)Sender)->Tag] = '0' ;
Newsgroup: it.comp.lang.c++
Titolo: Restituzione di valori

Boh, oggi non sono in giornata di terminologia, sarà anche l'orario :).
Dunque, sono un perfetto novellino del C++ e vorrei sapere una cosa
molto stupida, cioè se faccio
class a
{...};
class b
{
  a f();
};
come faccio ad allocare il risultato in f? Lo dichiaro come oggetto
locale tipo
a f()
{
  a x;
  ...
  return x;
}
e in quel caso, come funziona la disallocazione? 
In generale, deve avvenire spessissimo che una funzione restituisca un
oggetto di un tipo "aggregato", quindi un modo semplice e poco rischioso
dal punto di vista dei memory leaks ci deve essere...
Inoltre, se quello di sopra funziona bene, posso fare anche
a & f()
{
  a x;
  ...
  return x;
}
oppure sarebbe come restituire il puntatore e perdere la memoria puntata
per via della disallocazione dello stack (scusate non sono in giornata
di azzeccare i termini già l'ho detto)?
Grazie per l'attenzione
Vincenzo

 di azzeccare i termini già l'ho detto)?
Esattamente. Restituiresti un reference a un oggetto che è uscito di scope.
Max

Newsgroup: it.comp.lang.c++
Titolo: Uso di CFile (Visual C++) con file in rete.

Usando l'oggetto CFile provvisto dalle librerie MFC di Visual C++ ed
aprendo un file di rete (nel mio caso in un computer della LAN
locale), usare il metodo Write() è bloccante o no ? Ovvero una volta
invocato il metodo, l'esecuzione del programma si arresta fintantochè
viene ricevuta conferma dell'avvenuta scrittura (o di un errore)
oppure continua imperterrita ?
Mattia

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

 wrote in message
news:12506ef8.03092...@posting.google.com...

sei OT su questo NG.
Ivan
Newsgroup: it.comp.lang.c++
Titolo: [?]:namespace

Ciao a tutto il newsgroup,
sto iniziando a studiare il C++, non mi è ben chiaro l'utilizzo
del'istruzione using namespace std;
mi sembra di capire che la cosidetta direttiva d'uso serva a indicare i nomi
nella libreria standard C++
Ma non mi è chiaro il suo utilizzo, premetto che sto utilizzando come
compilatore il Dev-C++ 4.9.3.0 Beta.
Ho scritto questo codice di prova:
#include <iostream>
#include <string>
#include <vector>
#include <cassert>
using namespace std;
int main()
{
    int k=0;
    assert(k==1);
    int a=0;
    if (a==0){
        cerr << "Errore: " << __FILE__ << " " << __LINE__ << " " << __DATE__
<< " " << __TIME__;
    }
}
Ma se scrivo:
#include <iostream>
#include <string>
#include <vector>
#include <cassert>
int main()
{
    int k=0;
    assert(k==1);
    int a=0;
    if (a==0){
        cerr << "Errore: " << __FILE__ << " " << __LINE__ << " " << __DATE__
<< " " << __TIME__;
    }
}
Il codice funziona correttamente, ma non dovrebbe riconoscere l'assert()
Probabilmente non ho compreso il relae utilizzo, vi ringrazio per ogni
delucidazione.
CoDaBat

 compilatore il Dev-C++ 4.9.3.0 Beta.
Supponi di utilizzare due librerie che ad esempio contengano entrambe la
stessa classe Obj: senza i namespace avresti conflitti tra i nomi delle due
classi, per cui non le potresti utilizzare mai insieme. I namespace servono
a risolvere il problema:
namespace first {
    class Obj {
    ...
    };
}
namespace second {
    class Obj {
    ...
    };
}
A questo punto potresti utilizzare le due classi contemporaneamente,
specificando anche il namespace di appartenenza:
first::Obj obj1;
second::Obj obj2;
La direttiva using serve a specificare gli elementi di un namespace che vuoi
utilizzare senza dover specificare il nome del namespace:
using first::Obj;
Obj obj1;
second::Obj obj2;
Per includere tutti gli oggetti del namespace:
using namespace first;  // in questo modo ci si può riferire a tutti gli di
first senza specificare il namespace
Obj obj1;
second::Obj obj2;
Se includi entrambi i namespace torni alla situazione di partenza.
Nel caso della libreria standard, tutti gli oggetti in essa contenuti sono
inclusi nel namespace std.
ciao,
Cecco
---------
Visit: 
www.sourceforge.net/projects/dlab
Home Page: 
http://dlab.sourceforge.net/
Dlab-developer mailing list
https://lists.sourceforge.net/lists/listinfo/dlab-developer

 snip
Col Dev-C++ il namespace std e' usato per default anche se non lo
specifichi.
Per far si' che il tuo programma sia standard pero', occorre che scrivi
esplicitamente using namespace std;
Se un giorno dovessi usare il tuo sorgente su un altro compilatore, vedresti
che ti dara' degli errori.
Maurus

 ha scritto nel messaggio
news:ac82e3$nmkg3$1...@ID-125555.news.dfncis.de...

Grazie ragazzi per le risposte,
colgo ancora l'occasione per salutare tutto il newsgroup
Newsgroup: it.comp.lang.c++
Titolo: AIUTO!!!!!

C'è qualcuno di voi che sta leggendo o ha letto il libro C++ fondamenti di
programmazione di Deitel & Deitel.
Perché non riesco a capire il senso e l ' esempio del cap 7.10 di pag . 432.

 a écrit dans le message de news:
SArE9.20665$3l.5...@twister1.libero.it...

E se ci postassi la porzione di codice di cui non capisci il senso?
Magari anche chi quel libro non lo ha letto potrebbe aiutarti.
Maurus

 ha scritto nel messaggio
news:SArE9.20665$3l.5...@twister1.libero.it...

E' un' esempio sulle classi proxy:
Interface non arriva a conoscere l'implementazione di Implementation ma può
utilizzarne i servizi attraverso un puntatore alla stezza Implementation!
Sperando di averti chiarito qualcosa, ti saluto!!!
Ciao
Francesco.

 wrote in message
arthfd$lei75$1...@ID-125555.news.dfncis.de...

daccordo.
Per evitare che estranei accedano alle informazioni ella logica di
programmazione che devono rimanere proprietarie si fornisce
ai client una classe proxy  che una classe interfaccia che conosce soltanto
la parte pubblica della classe da proteggere
 questo è il codice dell'esempio:
 class Implementation {                           file://classe da
proteggere
   public:
      Implementation( int v ) { value = v; }
      void setValue( int v ) { value = v; }
      int getValue() const { return value; }
   private:
      int value;
};
class Implementation;   //
class Interface {      file://classe proxi
   public:
      Interface( int );
      void setValue( int );  // same public interface as
      int getValue() const;  // class Implementation
      ~Interface();
   private:
      Implementation *ptr;   // requires previous
                             // forward declaration
};
#include "interface.h"
#include "implementation.h"
Interface::Interface( int v )
   : ptr ( new Implementation( v ) ) { }
// call Implementation's setValue function
void Interface::setValue( int v ) { ptr->setValue( v ); }
// call Implementation's getValue function
int Interface::getValue() const { return ptr->getValue(); }
Interface::~Interface() { delete ptr; }
#include <iostream>
using std::cout;
using std::endl;
#include "interface.h"
int main()
{
   Interface i( 5 );
   cout << "Interface contains: " << i.getValue()
        << " before setValue" << endl;
   i.setValue( 10 );
   cout << "Interface contains: " << i.getValue()
        << " after setValue" << endl;
   return 0;
}
questo è il codice che compilato non da errori.
Il problema che la spiegazione del libro è poco chiara  almeno per me.
Ma delle classi Proxi qualcuno ne ha mai sentito parlare.

 wrote in message
pCsE9.21054$2B1.5...@twister2.libero.it...

Conciso ma efficace .
Mi sembra di capire che hai letto il libro cosa ne pensi?
Hai letto anche il secondo?
Commenti?

 Commenti?
Il primo onestamente mi è piaciuto di più, anche se il secondo è pure lui
molto valido!
Penso siano bei libri, spiegano in maniera approfondita i vari argomenti,
secondo me la pecca è l'italiano, ma è sopperito da una buona quantità di
codice!
Ciao e in bocca al lupo per lo studio!
Francesco

 wrote in message
I9wE9.22151$3l.6...@twister1.libero.it...

Newsgroup: it.comp.lang.c++
Titolo: gui in opengl

ciao a tutti...sono matt e faccio 5a Info all'itis; dobbiamo preparare
un'area di progetto e a me e un mio amico ci è venuta in mente l'idea
di sviluppare un'interfaccia grafica sotto forma di libreria
riutilizzabile..probabilmente verrà realizzata in opengl (credo..)
....ora chiedo il vostro parere: secondo voi una cosa del genere è
fattibile o ci conviene pensare ad altro? ciao a tutti e buon anno!!!

 fattibile o ci conviene pensare ad altro? ciao a tutti e buon anno!!!
Mmmhh... se la domanda e` se e` possibile fare una libreria grafica 
riutilizzabile basata su openGL la risposta e` si.
L'han gia` fatta si chiama SDL.
Ciao,
Cesare

Newsgroup: it.comp.lang.c++
Titolo: Problemi con i template

Salve,
volevo scrivere una classe (CHeap) che implementasse un semplice
heap-tree. Per poter utilizzare diversi tipi per le priorità degli
elementi (float, int, double...), volevo scrivere un template. Perciò,
ho dichiarato la classe (nel file cheap.h) nel seguente modo:
(file cheap.h)
template <class P, class D>
class CHeap {
private:
// ......
public:
 CHeap(long maxNumElem) { ... }
 ~CHeap(void);
// ..............
};
Vorrei ora scrivere il distruttore nel file cheap.cpp. Come devo fare?
Ho provato nel seguente modo:
(file cheap.cpp)
template <class P, class D>  CHeap<P, D>::~CHeap()
{
}
ma le cose non funzionano. Tutto viene compilato. Il problema sta nella
fase di linking. In un altro file, main.cpp, ho scritto una procedura
sperimenta() nel seguente modo:
void sperimenta()
{
    CHeap<long, void> heap(100);
}
Il linker (Visual C/C++ 6.0) mi dice però:
error LNK2001: unresolved external symbol "public: __thiscall
CHeap<long,void>::~CHeap<long,void>(void)" (??1?$CHeap@JX@@QAE@XZ)
Qual'è il problema? La cosa assurda, è che se io, in cheap.h, scrivo il
corpo del distruttore, tutto funziona! Come devo fare per scrievre le
funzioni membro di questa classe template al di fuori della definizione
di classe stessa?
Ah, stesso discorso per il distruttore.
Ancora più strano, se diachiaro, nel file cheap.cpp, un heap di tipo
<long, void>, il file .exe viene creato...
Ok, lo ammetto, sto iniziando adesso a programmare in C++....:)
Questo mi sembrava un semplice esercizio e invece mi sta fancendo
impazzire!
Ciao.

 <long, void>, il file .exe viene creato...
 
http://groups.google.com/groups?selm=87o1j6$i09$1...@bob.news.rcn.net
Max

 Max
Ma, quindi per i templates č cosě: tutto va nella dichiarazione della classe
stessa e non fuori!
Sai il motivo di ciň? E' una cosa prettamente del Visual C/C++ o č proprio
stato stabilito a priori?
In quest'ultimo caso mi chiedo, ancora, perchč?
Ciao
Newsgroup: it.comp.lang.c++
Titolo: Problema col Builder 3.0 e Win98

Ciao
Ho installato il Borland Builder 3.0 su un portatile con Win98,
nuovo, senza altri programmi strani installati sopra...
Il problema e' che si blocca sempre!
Il programma parte, mostra l'immagine del Builder, nel menu
appare l'item "Database" e poi si blocca... cercando di resettare
o almeno far apparire la finestra dei task con ctrl-alt-del causa
un blocco totale della macchina.
Qualcuno ha avuto problemi simili o ha una soluzione/consigli per
risolvere questo problema?
Bye
   Wiz
Advanced: (adj.) doesn't work yet, but it's pretty close.

Il problema e' che si blocca sempre!
Prova a far partire il Builder con l'opzione -NS (no splash). In questo modo
elimina anche l'errore di runtime che da alla chiusura.

>Il problema e' che si blocca sempre!
 ST> Prova a far partire il Builder con l'opzione -NS (no splash). In
 ST> questo modo elimina anche l'errore di runtime che da alla chiusura.
Non funziona, si blocca come prima dopo aver aggiunto il menu
Database. :(
Bye
    Wiz
2 + 2 = 5 for extremly large values of 2.

Database. :(
Per caso hai una scheda S3? In questo caso ci dovrebbe essere una fix sul
sito della Inprise. Hanno scoperto che con Win98 il Builder e queste schede
si litigano :-(
Se lo trovo io ti faccio sapere.
Stefano Tempesta

Ciao Stefano Tempesta, guarda che scrivevi il 11-Dic-98 08:11:52 riguardo Re: Problema col Builder 3.0 e Win98:
 ST> Per caso hai una scheda S3? In questo caso ci dovrebbe essere una fix
Mi sa di si'... se non altro perche' c'e' un'icona S3 nella tray
bar :)
 ST> sul sito della Inprise. Hanno scoperto che con Win98 il Builder e
 ST> queste schede si litigano :-( Se lo trovo io ti faccio sapere.
hm... ora lo cerco, ma non avevo trovato niente... se magari lo
trovi, fammi un fischio please
Bye
   Wiz
Real Programmers arrive at work in time for lunch.

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

cerco un compilatore possibilmente in italiano e gratis, poi vorrei la pace
nel mondo e altre cosette
grazie a chi mi aiuta

 nel mondo e altre cosette
Per che piattaforma? Immagino per windows, visto che MacOS X, GNU/Linux,
FreeBSD, NetBSD,... etc etc lo hanno gia` il compilatore.
Poi cosa intendi per 'compilatore in italiano'?
Se vuoi posso darti i link di compilatori gratuiti e/o liberi.
-- 
RiK0
Non credo negli schemi non vincenti.

 > nel mondo e altre cosette
Dev++, non è in italiano, ma è gratis;-)
Per la pace nel mondo e roba varia dovresti chiedere a qualcuno più in
alto...:-)
Ciao

 prova qui, c'č anche la traduzione in italiano!!!
http://www.bloodshed.net/devcpp.html
Stefano M.
Newsgroup: it.comp.lang.c++
Titolo: Istanze di una classe che al suo interno contengono una lista

Salve a tutti,
se ho una classe ottenuta per composizione col tipo <list> (non so se è
corretta la dicitura) alla chiamata del costruttore della classe devo usare
la inizialitiation list per chiamare il costruttore per la mia lista ? Io
credo di si, ma ditemi voi se sto sbagliando di grosso.
Purtroppo i template mi sono ancora quasi sconosciuti...
Es.
class A{
           /....../
           membri privati...
         public:
        list<My_object> sack_list;
        A();
       /....../
       funzioni membro
        }
Se chiamo
A una_istanza_di_a;
il mio costruttore per A credo debba essere definito cosi:
A:: A(void):sack_list...[ma qui che cavolo ci metto?]{
/....../
definizione del costruttore per A
}
Insomma, come va dichiarato e definito il costruttore per A:
cosi:
A:: A(void):sack_list(){
/..../
}
o pomi' ?
A:: A(void){
/...../
}
:-)
Bye,
Sebastiano

 Purtroppo i template mi sono ancora quasi sconosciuti...
Non e' necessario, perche' list ha un costruttore di default.
Ciao,
Nicola

Ma no è sbagliato, se ho capito bene...

No. Il compilatore genera automaticamente le chiamate ai costruttori di
tutti i membri e di tutte le classi base non virtuali, posto che questi
siano dotati di costruttore di default (siano essi scritti
esplicitamente o a loro volta sintetizzati dal compilatore stesso).
Quindi:
class A {};
non c'e costruttore, lo genera il compilatore
class B { 
  public: 
    B() {} 
};
il costruttore di default e' esplicito
class C { 
  public: 
    C(int c) {} 
};
c'e' un costruttore: il compilatore *non* genera un bel niente
class D : public A { 
  private: 
    B b; 
};
tutto OK. Il costruttore e' sintetizzato dal compilatore
class E : public B { 
  public: 
    E() {} 
  private: 
    A a; 
};
ancora OK: il compilatore aggiunge la chiamata al costruttore di B
class F : public C {
  public:
    F() : C(2) {}
};
funziona solo perche' e' specificata l'inizializzazione di C
class G {
  public:
    G() : c(3) {}
  private:
    C c;
};
funziona solo perche' e' specificata l'inizializzazione di c
Spero di non aver sbagliato niente, perche' non ho compilato. E' piu'
chiaro adesso?
Ciao,
Nicola
P.S. Di, ma c'e' l'hai un libro decente sul C++?

 la inizialitiation list per chiamare il costruttore per la mia lista ?
Solo se la tua std::list ha bisogno di essere inizializzata (non è
indispensabile, può anche essere inizialmente vuota). Allo scopo puoi
utilizzare uno dei costruttori da essa previsti.
EMG

Scusa, ma quali sono i costruttori per una lista? Se chiamo quello di
default me la trovo correttamente inizializzata ?
Devo definirlo io il costruttore?
Grazie in anticipo per la risposta.

 Devo definirlo io il costruttore?
Direi proprio di no, essendo std::list un template già completamente
definito nella libreria standard.
EMG
Newsgroup: it.comp.lang.c++
Titolo: Problema con GCC 3.2

Ho questo codice:
#include <string>
#include <list>
typedef unsigned short uint;
typedef uint* ID;
typedef list<ID> LID;
Quando compilo con GCC 3.2 ottengo questo errore:
IDmisc.h:12: syntax error before `;' token
Perchč non funziona?
Sto lavorando con l'ultimo Dev-C++, con una versione
piů vecchia invece compilava... immagino sia per via del
nuovo GCC!

 typedef list<ID> LID;
typedef std::list<ID> LID;
--
Pela

 typedef std::list<ID> LID;
Giusto. Ma ce ne sono ancora decine:
namespace IDmisc {
    string IDtoHex(ID id);
// ........
};
Stesso errore di prima...
Perchè sono proliferati gli errori se prima andava tutto ok?

...

Veramente e' il tuo codice che e' scorretto. La versione (di molto)
precedente di g++ non gestiva correttamente i namespace ed i tuoi
errori passavoano inosservati.
Ciao,
Nicola

 errori passavoano inosservati.
Capisco...
Mi scuso anticipatamente per la domanda: cosa sbaglio?
Non si fa così la definizione del namespace?

 Non si fa così la definizione del namespace?
Sì. Non era quello il problema.
Max

 Sě. Non era quello il problema.
Ho capito, ti ringrazio del chiarimento.
Perchč suggerisci la prima?

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
misirion wrote:
| Ho capito, ti ringrazio del chiarimento.
| Perchè suggerisci la prima?
Perchè i namespace sono fatti apposta per dare un contesto alle cose ed
evitare omonimie, se si caricano tutti nel calderone usando "using" è
come non usarli... e quindi non avrebbe neanche avuto senso
implementarli 0=)
- --
L a p o   L u c h i n i
l a p o @ l a p o . i t
w w w . l a p o . i t /
http://www.megatokyo.it
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (Cygwin)
Comment: Using GnuPG with Mozilla - 
http://enigmail.mozdev.org
iEYEARECAAYFAkAFCb8ACgkQaJiCLMjyUvuAzwCg4gymvZL6cm7gXfAgkyofAX/O
ctkAniqlmIfqM3Ldx8s1GsiEVB2d2aCL
=8k0l
-----END PGP SIGNATURE-----
Newsgroup: it.comp.lang.c++
Titolo: Lunghezza tipi

]

...


 dalla architettura della macchina su cui il codice viene compilato?
Un [unsigned] long int e' garantito avere _almeno_ 32 bits (K&R2, pag.
18).  Se vuoi che abbia _esattamente_ 32 bits, l'unico modo e' fare un
test (o inizializzarlo a ~0 e shiftarlo a sinistra finche' non ottieni
0; o testare direttamente ULONG_MAX, in <limits.h>).
Puo' darsi che _nessun_ tipo intero abbia _esattamente_ 32 bits, BTW...
-- 
Maurizio Loreti                      
http://wwwcdf.pd.infn.it/~loreti/mlo.html
Un. of Padova, Dept. of Physics - Padova, Italy          
lor...@padova.infn.it

Se facessi un sizeof() alla partenza ?
Non va bene perche' vorrei che tutto fosse messo a posto in fase di
compilazione, non runtime


Puo' darsi che _nessun_ tipo intero abbia _esattamente_ 32 bits, BTW...
Perche' farsi del male... ^__^


 Ciao, Lvca.
E se un char non fosse di 8 bits?


 Perche' farsi del male... ^__^
E' il mondo che e' cattivo.  La prima macchina su cui ho lavorato (IBM
7090) aveva parole di 36 bits; poco tempo fa ho usato un processore
(DSP) in cui char, short, int e long erano tutti di 32 bits (per cui
un tipo di 16 bits esatti dove lo trovi)?
Queste cose cambiano anche con il compilatore; per alcuni compilatori
ed una CPU DEC-Alpha un int e' 32 bits ed un long 64; per altri int e
long sono di 32 bits e un long long (non-standard) e' di 64.
Chiaramente se non vuoi essere portabile e' un altro discorso...
C'e' anche un CHAR_BIT definito in <limits.h>, BTW.


--
La sizeof() è una macro ed è risola in fase di compilazione...
Non ho mai provato ad utilizzarla con #ifdef & Co. ma dovrebbe funzionare.
Ciao, Lvca.


Gli #if vegono espansi in fase di precompilazione, prima della sizeof


 Non ho mai provato ad utilizzarla con #ifdef & Co. ma dovrebbe funzionare.
sizeof e' un operatore e viene gestito dal compilatore.
Le direttive #ifdef e simili vengono gestite dal
preprocessore, prima della compilazione.
	Mauro

> La sizeof() è una macro ed è risola in fase di compilazione...


C'e' anche un CHAR_BIT definito in <limits.h>, BTW.
Quello lo dovra' usare qualcun altro se vuole portare il codice su
architeture strane... Ma intanto non accadra' mai... ^__^


dimensione dei tipi fondamentali? 
Lo standard stabilisce solo i range minimi dei possibili valori che un 
tipo fondamentale deve poter rappresentare, il che equivale anche a
stabilire un numero minimo di bit... Niente di piu`. Non puoi avere 
alcuna garanzia che un int sia rappresentato su 32 bit su qualunque
macchina... tutto cio` che puoi fare e` verificare la cosa a run time.
In molti casi comunque la soluzione puo` essere semplicemente quella di
usare i bit-field:
struct mask {
   a      : 8;
   b      : 6;
};
Ovviamente cio` non significa che la struttura occupi esattamente 14 
bit, ma questo puo` non essere determinante in molte occasioni.
Paolo
-----------------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------------------------

]
Newsgroup: it.comp.lang.c++
Titolo: static const di strutture



Salve

Sto cercando di realizzare una mia piccola libreria per il trattamento
delle immagini e mi sono inbattuto in uno strano messaggio di errore.

Il problema nasce al momento di inizializzare una struttura costante
all'interno di una classe.

Il codice isolato che da errore e' il seguente

class Pippo

{

 struct Topolino

 {

   int a;

   int b;

  };

 static const Topolino topo = { 12, 12 };

...

};

al momento della compilazione si genera l'errore

in-class initialization of static data member of non-integral type `const
Pippo::Topolino

 

Questo tipo di inizializzazione invece funziona benissimo al difuori
della classe (in questo caso ho provato anche non STATIC e funziona ovviamente
uguale)

Ho provato anche con

static cast Topolino (12,12);

E giustamente si arrabbia perche' non esiste un costruttore (int, int).

Volevo sapere se qualche d uno di voi sapesse spiegarmi questo errore
e com sia possibile dichiarare una struct const all'interno di una classe.

Io lavoro sotto linux 2.2.16-SMP  e compilo con  g++ version
2.95.2 19991024 (release)

Ringrazio anticipatamente


Federico




-- 

Ing. Federico GUIDO 
DIST - Universita' di Genova - Italy
V. Opera Pia 13, 16145
tel. 
+39 010 3532076

 


 classe.
L'inizializzazione diretta di membri dati all'interno della definizione
della relativa classe e' consentita solo per membri dati statici
costanti di tipo intero (char, int, ecc.)
Ciao,
Nicola

 ha scritto nel
messaggio news:3B3B5686...@zero.visionlab.dist.unige.it...


  } Topolino;
Dal momento che si tratta di C++ e' preferibile:
struct Topolino
{
   int a;
   int b;
};
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: [OT] Libro su algoritmi

Salve,
sapreste indicarmi un libro che spieghi bene, pile, code, liste doppiamente 
linkate, alberi, grafi etc...?
Algoritmi + strutture dati = programmi di N. Wirth dite che copre bene 
questi argomenti?
Grazie
-- 
Luigi
--
bug windows [5] = {"95", "98", "NT", "Me", "2000"};
Email: 
byte...@hotmail.com
Web Site: 
http://web.tiscali.it/luigi_web
ICQ #46240443

 
IO ho comprato Introduzione agli algoritmi della Jackson Libri. Devo dire 
che anche non avendo nozioni avanzate di matematica(devo fare la III Itis)
lo comprendo molto bene.
Ciao
-- 
Abruzzo SIlvio
goku_...@libero.it
silvi...@aruba.it
Linux Machine 219721
^_____^

 questi argomenti?
Secondo me e' un ottimo libro. E' vecchio, ma gli argomenti che tratta
non passano di moda. Tieni presente che tutti gli esempi sono in Pascal.
A suo tempo (un numero imbarazzante di anni fa) il problema piu' grosso
che ci trovai fu di tradurre gli algoritmi contenenti cicli con indici
che partono da 1.
Altrimenti puoi cercare i libri di Robert Sedgewick (che mi hanno
consigliato, ma non ho letto) o, se sei in vena di un mutuo, "The Art of
Computer Programming" di D. Knuth.
Ciao,
Nicola

Il libro di Silvio me lo hanno consigliato anche su it.comp.programmare.
E' molto più grosso di quello di Wirth quindi forse è migliore (almeno per
il numero di argomenti trattati)?
Grazie
--
Luigi
--
http://web.tiscali.it/luigi_web
ICQ #46240443

 il numero di argomenti trattati)?
Due cose:
1) state parlando del Cormen-Leiserson-Rivest ?!?
2) piu' grosso non vuole dire assolutamente migliore. A volte nemmeno "per
il numero di argomenti trattati".  Nel caso specifico se si parla del C-L-R
e' un buon libro che tratta moltissimi argomenti.
Che io sappia la Jackson lo traduceva diviso in 3 volumi. In questo caso
ogni singolo volume tratterebbe pochi argomenti e sarebbe pure sottile.
Alex

 Alex


 questi argomenti?
anche di questo ne ho sentito parlare ottimamente... se non altro perche' 
gli esempi sono in Pascal :-))
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

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

Sapete dirmi dove posso trovare un compilatore per C++?
Il DJGPP mi sembra che sia a 32 bit, mi serve per installarlo
in un 386 con HD da 40 Mb e MS-DOS 6.22
Cosa mi consigliate?
--
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
e-mail: 
cerch...@ciaoweb.it
 
33813...@tim.it
Bye byte, Cerchietto
La vita, senza una meta, è vagabondaggio
(Seneca)
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

Cosa mi consigliate?
beh... mi sa che é un pò pesantuccio il djgpp per quella macchina..
prova a trovare qualche vecchia versione del borland c++
cod

 prova a trovare qualche vecchia versione del borland c++
Trovato: Borland TCPP Ver. 1.01
Grazie mille.
--
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
e-mail: 
cerch...@ciaoweb.it
 
33813...@tim.it
Bye byte, Cerchietto
La vita, senza una meta, č vagabondaggio
(Seneca)
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
Newsgroup: it.comp.lang.c++
Titolo: Perche' mi da syntax error?

template <class tipoelem>
class Lista {
  struct nodo {
    nodo* predLista;
    tipoelem a;
    nodo* succLista;
  };
  public:
    typedef nodo* posizione;
[...]
};
template <class tipoelem>
class Grafo {
  struct Nodo {
    tipoelem a;
    unsigned archi;
    struct Appoggio* succ;
  };
  struct Appoggio {
    Nodo* e;
    Appoggio* succ;
  };
  public:
    typedef Nodo* nodo;
    Grafo() {
      Lista<nodo>::posizione p; //<-qui mi da syntax error
    };
[...]
};
perche' mi da errore di sintassi?
eppure se creo un Lista<int>::posizione non mi da problemi.
-- 
§                      ZeD                       §
§                   28/08/2004                   §
§             S. Agostino-S. Adelina             §
§ Now listening: Guano apes - Lord of the boards §

 eppure se creo un Lista<int>::posizione non mi da problemi.
Problema di scope.
-- 
Gerolamo

 Problema di scope.
e come posso "forzare"? Lista<Grafo::nodo>::posizione p; non risolve il
problema
-- 
§                    ZeD                     §
§                 28/08/2004                 §
§           S. Agostino-S. Adelina           §
§ Now listening: Articolo 31 - Cosi' com' e' §

 problema
In realtà il problema è che Grafo è un template.
Lista<Grafo<int>::nodo>::posizione p;
compila.
In realtà non sto bene capendo cosa vuoi fare, perchè mi pare che
ti stia incasinando la vita con template incrociati uno dentro l'altro.
Prova a spiegare meglio lo "scopo del gioco" di creare un
Lista::posizione all'interno del costruttore di Grafo
p.s.
E' un esercizio?
Perchè non usi std::list?
Perchè non usi boost::graph
( 
http://www.boost.org/libs/graph/doc/table_of_contents.html
 ) ?
-- 
Gerolamo

 E' un esercizio?
beh, si', per l' uni... devo passare l' esame di algoritmi e strutture
dati, con questa roba ^^;
-- 
§                     ZeD                      §
§                  28/08/2004                  §
§            S. Agostino-S. Adelina            §
§ Now listening: Carmen Consoli - L' eccezione §

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

Salve, sono programmatore VB (non a grandi livelli ;-)) e vorrei passare al
c++. Ho solo qualche infarinatura di c e vorrei sapere:
1- Quale VC++ utilizzare
2- Quale libro comprare per iniziarmi
Grazie
--
Abruzzo Forte e Gentile
SilvioŠ - Sulmona (AQ)
griso...@freemail.com
In caso di e-mail togliere   .bravo
http://members.xoom.com/Lucignolo/



2- Quale libro comprare per iniziarmi
Se leggi l'inglese, qualunque compilatore tu scelga, allora
Lippman e Lajoie, C++ Primer, 3rd edition, Addison Wesley.
Fra i libri esistenti in italiano, purtroppo, non so invece
raccomandartene uno che sia altrettanto aggiornato e
valido.
Alex

Salve, sono programmatore VB (non a grandi livelli ;-)) e vorrei passare al
c++. Ho solo qualche infarinatura di c e vorrei sapere:
1- Quale VC++ utilizzare
2- Quale libro comprare per iniziarmi
Grazie

Newsgroup: it.comp.lang.c++
Titolo: Site related to c++

Hi ,
Can any one tell me some site related to  training material  on C and C++.
Thanks.
Manish.

hello,
try this links. maybe there you can find what you're looking for
 
http://www.cyclone7.com/cpp/
 
http://www.swcp.com/~dodrill/cppdoc/cpplist.htm
 
http://webnz.com/robert/cpp_site.html


 wrote in message
news:Pine.OSF.3.95.9905...@irc.vsnl.com...


Newsgroup: it.comp.lang.c++
Titolo: X Paolo Marrotta

Salve a tutti sono un futuro programmattore in C/C++ (MAGARI)
Ho Borland C++ Builder, ho letto il tutorial (esaustivo!!), però non riesco
a fare dei semplici programmi. Mi spiego:
Scrivo il codice con text editor e lo salvo con estensione cpp, poi lo
eseguo con il command line che ora non ricordo del borland, ma mi da errore.
Faccio così perche con LCC-win 32 mi fanno fare così e funziona.
Dove sbaglio???
Non mi segue il PC oppure gli dico delle stupidaggini?! Credo la seconda.
Vorrei "smanettare" un po il semplice codice prima di creare applicazioni e
dBase.
Grazie a tutti!
Marco

 ha scritto:

Questo non é un helpdesk su BCB, comunque non ti funziona perché devi
creare un progetto, in assenza del quale il compilatore(almeno con l'
interfaccia grafica attiva) si rifiuta di compilare.
In alternativa puoi compilare direttamente da linea di comando invocando
bcc32.exe
-----
ZIO : Fun and games are over with. Anyone who dares
get in my way shall perish.
DIO ci salvi dagli ocx del Viral Basic.
-----

 Ho Borland C++ Builder, ho letto il tutorial (esaustivo!!), però non
riesco
ti conviene iscriverti ai newsgroups della borland:
http://www.inprise.com/newsgroups/
se usi outlook express ti basterà cliccare sui gruppi e ti sottoscriverai
automaticamente. Sono molto frequentati, da gente in gamba e disponibile.
ciao
--
<>~<>~<>~<>~<>~<>
Claves do Amaral
ela...@libero.it
<>~<>~<>~<>~<>~<>

Un po' vago come messaggio...
Dovresti postare il codice (se piccolo) ed il messaggio del
compilatore.
Paolo
Newsgroup: it.comp.lang.c++
Titolo: compilatore Borland 5.02

Salve a tutto il NG,
non essendo un abituale frequentatore di questo NG Vi chiederei se per
cortesia potreste inviare eventuali risposte anche al mio indirizzo
personave (v. signature). Chiarite queste formalità Vi sottoporrei il
problema. Sto' sviluppando un piccolo programma di Intelligenza Artificiale
(rei Neurali) in C++. Ho sviluppato alcune classi su più files con header e
tutto fatto (apparentemente) come si deve. Compilando il tutto su un
vecchissimo compilatore Borland 3.1 (ancora solo x DOS !!) tutto bene, il
programma si compila con qualche warning  e poi gira pefettamente (sono su
una macchina Win95).
Avendo però a disposizione un compilatore Borland 5.02 con tutte le comodità
di un ambiente Win ho voluto ricompilare anche coin questo. stessi warning
che col 3.1 ma il programma, una volta lanciato si pianta, non solo, ma si
pianta sempre in punti diversi, dicendo varie cose:
1) se lo compilo come eseguibile x Win32bit tipo console (senza GUI x
intenderci) mi dice che un puntatore cerca di leggere da un'area protetta!
2) se lo compilo come eseguibile DOS standard mi dice che si verificano
errori Floating Point, sempre in momenti diversi del programma!
Il bello è che questo programma ha un loop principale nel main che scandisce
il funzionamento del tutto, e il crash si verifica a volte al 1°
'passaggio', a volte al 2°, a volte al 50° !!!
Sono convinto che sia qualche opzione del compilatore da settare, ma io ho
tentato di mettere tutto + simile possiblie ai settaggi del 3.1, ma niene!
Qualcuno conosce questo compilatore e ha una vaga idea di cosa potrei
provare a fare!!
Ringrazio tutti anticipatamente e spero di sentirVi presto!
Grazie ancora!
--
Per favore rispondere anche al mio indirizzo
di e-mail, ricordandovi di togliere NOSPAM !
-----------------GRAZIE---------------------
Federico Castellari    Bologna,It
e-mail mailto:
fede....@libero.it
ICQ 12844860 (Fede)
----------------A PRESTO--------------------

Molto probabile che ci sia una qualche variabile (magari un puntatore)
non inizializzata. Bada bene a cosa dicono le warning e prova a
tracciare l'esecuzione del codice che non funziona.
Paolo
--------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
--------------------------------------------------

Newsgroup: it.comp.lang.c++
Titolo: autoexec.bat (Info)

Come posso far in modo di avviare un prog (MS-DOS) prima dell'avvio di Win?
e quindi dopo averlo terminato avviare Win
P.s Forse è un po O.T. mi scuso subito :-)
P.S.S. La domanda è stupida certo,
pure io ...... ;-)
Bye
Avogrado

Scusate per questi 7 messaggi uguali e inutili(ne bastava uno) ma il server
fa schifo e continuava a dirmi che non riusciva a spedire
ma invece.........


Non è colpa del server ma dell'Outlook. Cambialo con un lettore migliore
(io, ad esempio, utilizzo quello del Netscape Communicator e mi trovo
bene).
EMG
Newsgroup: it.comp.lang.c++
Titolo: [REQ]Dove mettere #include "mia_classe.h"???

Ciao a tutti, ho due classi: Classe1 e Classe2.
Classe1 ha un metodo che prende come parametro un oggetto di Classe2,
una cosa del tipo
void Classe1::manipola(Classe2 oggetto);
Ho separato interfaccia e implementazione: ho Classe1.h e Classe1.cpp
In quale dei due file devo mettere #include "Classe2.h",
in Classe1.h o Classe1.cpp ?
grazie mille,
Blob[DX7]

 in Classe1.h o Classe1.cpp ?
Visto che la signature di una funzione di Classe1 prevede il passaggio per
*valore* di un'instanza di Classe2, la completa definizione di Classe2
dovrà risultare già inclusa nel punto in cui tale funzione viene
dichiarata. Perciò la cosa più sensata è mettere l'#include in 'Classe1.h'.
Se cambiamo la funzione in modo che riceva l'argomento come reference const
    void Classe1::manipola(const Classe2 & oggetto);
sarà sufficiente che in quel punto la classe 'Classe2' sia stata dichiarata
(non definita) con un semplice
    class Classe2;
Nell'implementazione di 'Classe1::manipola', poi, sarà presumibilmente
necessario includere l'intera definizione di 'Classe2' tramite #include
"Classe2.h"
Max
Newsgroup: it.comp.lang.c++
Titolo: segment fault

Un salutto al NG, premetto che sono un assoluto principiante con il c++, e 
passo subito alla domanda:
č possibile che in un programma banale, una volta compilato il programma, 
esso vada in segment fault se dichiaro prima le variabili di tipo stringa 
invece di quelle intere? E' cosě severo il linguaggio o c'č dell'altro?
Uso il g++ 3.2 sotto Linux RH 8.0.
Grazie a tutti.
-- 
Saluti, 
    by Enri'S
                        --- Linux Powered ---

 Uso il g++ 3.2 sotto Linux RH 8.0.
Non importa.
-- 
Andrea Bergia - studente              Linux Registred User #281550
"The one thing we're all waiting for, is peace on Earth and an end to war,
it's a miracle we need, the miracle, the miracle, 
Peace on earth and end to war today,
That time will come one day you'll see when we can all be friends"

 Posta il codice.
 
//-------start
#include <string>
#include <fstream>
#include <iostream>
#include <vector>
using namespace std;
int main()
{
        //se gli int li dichiaro quà, funziona
        string parola;
        char * inFile;
        char risposta;
        vector<string> v;
        //dichiarati quà, no
        int spaziBianchi = 0;
        int count = 0;
        do {
                cout << "Immetti il nome del file: ";
                cin >> inFile;
                ifstream in(inFile);
                cout << "Il file " << inFile << " è aperto." << endl;
                while (in >> parola){
                        v.push_back(parola);
                };
                cout << "Nel file ci sono circa " << v.size() -1 << " spazi bianchi.";
                cout << "Immetti una parola da cercare: ";
                cin >> parola;
                for (int i = 0; i < v.size(); i++){
                        if (v[i] == parola)
                                count++;
                };
                if (count > 0)
                        cout << "La parola \"" << parola << "\" ricorre " <
< count << " volte." << endl;
                else
                        cout << "La parola \"" << parola << "\" non è presente.";
                count = 0;
                spaziBianchi = 0;
                cout << "Vuoi continuare? [S|s]" << endl;
                cin >> risposta;
        } while ((risposta == 's') || (risposta == 'S'));
}
//-------end


         char * inFile;
una dimensione, a questa stringa, non gliela diamo?
o meglio ancora
   string inFile;
seguito poi da
   ifstream(inFile.c_str());

         int count = 0;
Il problema, da questo, dovrebbe essere lo sfondamento della memoria
riservata alle variabili. Ad esempio potresti aver sfondato il vettore v
accedendo a v[i] con i==v.size()  (non bisogna usare un iterator?).
Sfondando il vettore, vai a scrivere sugli interi e hai un comportamento
indefinito.
Se li dichiari prima del vettore cosa succede? Probabilmente sfondi il
vettore e scrivi sulle prime istruzioni (e non succede nulla di
tangibile).
Solo un'ipotesi,
Tore Salva
--

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

salve ,volevo chiedervi se qualcuno aveva idea di come poter richiamare la
api di windows e se per farlo devo avere il platform SDK.
grazie



#include <windows.h>
Newsgroup: it.comp.lang.c++
Titolo: iNTELLIGENZA ARTIFICIALE

Non vi è mai capitato di fare un programma di intelligenza artificiale per
il vostro computer??
io ci stò provando con un interfaccia però console per facilitare l'inizio.
Il programma consiste in un semplice mini-intelligenza che fa rispondere il
computer all'input dell'utente.
Funziona con delle classi intelligenti (almeno spero che lo siano).
Se avete esperienza mi farebbe piacere avere vostri consigli.
Grazie

Esisteva una roba fatta dalla AT&T ...
dicevasi: R++
ovvero una estensione del C++ integrante regole (che venivano chiamate
path-based)
era cosa molto seria (veloce perchè non utilizzante motori stile forward
chaining ...)
Io ci ho scritto un articolo in passato.
Vedi sito AT&T
Giorgio Robino

 wrote:
Non credo che su questo NG tale argomento sia IT,
comunque se voui mi puoi contattare alla mia e-mail
(in passato mi sono interessato di AI)
Paolo
-----------------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------------------------

 wrote in message
3753215c...@proxy.cli.di.unipi.it...

Non so voi ma penso che un programma di intelligenza artificiale si debba
saper ricompilare??
Siete d'accordo con me??

 Siete d'accordo con me??
Sarebbe interessante...
EMG

Siete d'accordo con me??
Perche`? Forse tu sei in grado di riorganizzare il tuo DNA? 
Comunque per la cronaca la cosa e` fattibilissima (in un certo senso)!!!


 EMG
Un programma che si ricompila non e' molto difficile da scrivere:
#include <stdlib.h>
#include <string>
int main(int argc, char **argv)
{
    string cmd = "g++ -o ";
    cmd += argv[0];
    cmd += " ";
    cmd += argv[0];
    cmd += ".cpp";
    system( cmd.c_str() );		 	    
}
// scusate, non ho resistito ;-)

]

Ci sono dei linguaggi che non separano dati da codice
Lisp


 wrote in message
375CE11B...@teseosrl.it...

Però mi sembra che sia necessario avere già il gcc... Forse l'amico
intendeva un programma che dato il sorgente è in grado di autocompilarsi...

intendeva un programma che dato il sorgente è in grado di autocompilarsi...
Basta inserire il compilatore tra i file del programma!!!!!
Semplice no? ;-)


 intendeva un programma che dato il sorgente è in grado di autocompilarsi...
In qualche modo questo programma andra' compilato, no ?
Oppure vogliamo scrivere direttamente un eseguibile, in assembler, anzi 
direttamente in codice macchina, (magari con un editor esadecimale, 
per semplificare). In questo caso il compito e' ancora piu' semplice,
infatti questo programma dovra' limitarsi a copiare la propria immagine
in memoria ;-)

Più semplicemente, ritengo non sia necessario che un programma IA si debba
ricompilare.
Una intelligenza, per essere tale, non è necessario conosca se stessa a quel
livello.
Claudio

Claudio, avend dal temp da perde, l'ha scricc in it.comp.lang.c++:

Non e' detto che per potersi "ricompilare" debba per forza saper
esattamente come e' struttura (il nostro cervello si modifica, ma non
ha la minima idea cosciente di quello che sta facendo...)
___
Sciasbat

Newsgroup: it.comp.lang.c++
Titolo: SOLO a chi sa "tradurre" da PASCAL a C/C++ [Spero non OT]

Salve a tutti! Scusate se ho spedito il messaggio a due NG, ma confido nel
fatto che qualche frequentatore possa aiutarmi. Il mio problema attualmente
e' che dovrei tradurre un piccolo programmino scritto in PASCAL (in verita'
sarebbe in Delphi ma la parte della VCL e tutto il resto me ne occupo io).
Quello che non sono mai riuscito a "tradurre" (qual'e' il termine adatto?
"fare il porting"?) e' la parte relativa agli array. Il codice e' il
seguente:
TBoard = array[-4..19][0..9] of Integer;
io ho pensato che si traducesse cosi':
int TBoard[19][9];
pero' dopo, come e' giusto che sia, c'e' una dichiarazione di variabile che
usa il tipo TBoard (perche' per quel poco che ricordo, in PASCAL gli array
sono dei tipi strutturati):
fboard : TBoard;
naturalmente in C/C++ non posso fare una cosa del genere
TBoard fboard;
o si puo' fare? Come vado avanti? Scrivendo "typedef int TBoard[19][9]" cosa
ottengo? Spero che qualcuno mi aiuti! Grazie
anticipatamente a quelli che mi risponderanno e scusate se sono un po OT!
P.S. Come si traduce l'istruzione "exit"?
HellHound - uccidi CERBERO per l'email

 TBoard = array[-4..19][0..9] of Integer;
senza stravolgerti tutto il codice e indici ti indico il modo veloce per
farlo usando degli spiazziamenti per riadattare gli array standard
int TBoard[24][10];
poi nel codice dove usi l'array con i puntatori usi gli spiazzamenti
for (i=-4;i>19;i++)
    for (j=0;j>9;j++)
        printf (" %d ",TBoard[i + 4][j]); // cosi fai lo spiazzamento
dell'indice i per riadattartelo all'uso degli algoritmi scritti senza dover
perforza riscrivere tutti controlli e cicli
spero di essere stato utile

 HellHound - uccidi CERBERO per l'email
exit(n); // dove n e' codice di errore
se usi gli oggetti puoi usare direttamente il return nel metodo main per
avere lo stesso risultato ed anzi avendo del guadagno in modularita', cosi'
facendo il tuo oggetto principale potra' essere inglobato dentro altre
risorse senza dover piu' fare manutenzione ma semplicemente usandolo come
una scatola nera

occavolo mi scuso ancora in crospot di aver crospottato il tutto ... mi sono
accorto solo dopo aver letto i due news che il tipetto sopra da bravo utonto
e non seguendo la net-tiquette aveva crospottato ...
mi scuso quindi a tutti i membri dei 2 news su cui per non aver letto il
campo di send ho crospottato

 P.S. Come si traduce l'istruzione "exit"?
se non erro in pascal 'exit' serve per uscire da una funzione, vero? In C e
C++ si usa 'return'.
ciao Anto
-- 
"Computer science is not about computers any more than astronomy
is about telescopes." -- EW Dijkstra
Newsgroup: it.comp.lang.c++
Titolo: coda dinamica

salve
sto affrontando lo studio delle adt ed ho difficoltà con la coda
dinamica.
innanzitutto ho scelto di rappresentare il tutto con l'uso di classi.
ho iniziato definendo una classe di dati con al suo interno due
puntatori : prev e succ (oltre appunto ai dati da pushare e poppare).
detta classe ha ovviamente tutti i suoi metodini per leggere e
scrivere ogni elemento di sè.
poi ho definito una classe coda con un solo puntatore alla classe
dati.
ho definito il push in modo classico:
dato* temp=new dato;
temp->prev=p (elemento corrente)
p=temp;
e fin qui tutto ok
nel pop però quando vado a risalire la coda tramite p=p->prev perdo
tutti ti riferimenti agli elementi successivi e tutto il codice da me
provato fa crashare irrimediabilmente il programma.....
ripensandoci poi mi sono detto che avrei dovuto assegnare gli elementi
successivi in fase di push, cioè inserisco un elemento e il successivo
di quello precedente punta all'elemento stesso ma comunque non sono
riuscito ad implementare nulla di serio
secondo voi è il mio ragionamento che fa acqua da tutte le parti
oppure ho sbagliato tutto dall'inizio, cioè nell'impostazione dei
puntatori etc?

 
http://it.wikipedia.org/wiki/LinkedList
spero possa esserti utile
Ciao
-- 
Andrea Corradi | Debian User | 
www.debian.org
Fingerprint: A41E F6B0 DBDB F04C 4940 E411 30F3 CD62 57B1 8458
gpg --keyserver 
keyserver.linux.it
 --recv-key 57B18458
Please avoid sending me Word or PowerPoint attachments.
http://www.gnu.org/philosophy/no-word-attachments.html