mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c++
Titolo: C++ verso VBA

Salve, sono un utente di Visual Studio C/C++.
Mi ritrovo a dover far uso di un ActiveX Control, da me scritto in C++,
all'interno di una macro di Microsoft-Word (quindi in VisualBasic).
Purtroppo ho una conoscenza poco approfondita di VB, vorrei di
conseguenza sapere se e come é possibile passare l'indirizzo
di una funzione Callback (in VB) come argomento di una chiamata
ad un "method" del mio OCX, vale a dire l'equivalente in VB di:
    ....
    ....
    MyOCX_Obj->SetCallbackAddress(MyCallbackProc);
    ....
    ....
}
void CALLBACK MyCallbackProc(.......)
{
}
Grazie anticipatamente a chiunque possa illuminarmi in merito o
indicarmi dove ottenere queste informazioni dal momento che non
sono riuscito a trovare niente a riguardo nell'Help di VB.
Ciao, Neil

ad un "method" del mio OCX, vale a dire l'equivalente in VB di:
L'approccio COM non usa le "callback", bensí un concetto, in
pratica equivalente, noto come "eventi".  Il tuo OCX deve supportare
gli eventi (in pratica, ti conviene usare l'architettura standard, che
si basa su IConnectionPoint e IConnectionPointContainer) e
"sparare un evento" quando occorre (equivalente a "fare una
callback"); VB userá implicitamente il metodo Advise per connettersi
e gestire gli eventi stessi (se embeddi l'OCX; se invece tu la
istanzi esplicitamente, userai la clausola "with events").
Per evitare la complessitá architetturale di IConnectionPoint ecc,
puoi anche scegliere di definire una tua soluzione ad hoc sulle
stesse linee (un metodo del tuo oggetto che accetta un ptr ad una
opportuna interfaccia COM; in VB, una Class che IMPLEMENTS
quella interfaccia COM, ecc ecc), ma questa semplicitá la paghi,
poiché non avrai supporto per il tuo schema da parte di VB, né
di librerie/framework tipo ATL, e, se vuoi distribuire i tuoi OCX,
dovrai documentare il tuo schema... e sperare che i clienti lo
vedano di buon occhio!-)  IConnectionPoint ecc é uno schema
piú standard e te lo consiglio decisamente.
Alex

Newsgroup: it.comp.lang.c++
Titolo: AIUTO :(

Qualcuno saprebbe come fare ad inserire delle righe di assembler in un
sorgente c per poi compilare tutto con il Visual c Micro$oft???
In altre parole...e' possibile che il compilatore del Visual c
Microsoft  non digerisca l'assembler?
Grazie anticipatamente!!!
Ciao
Antonino

sorgente c per poi compilare tutto con il Visual c Micro$oft???
usa la keyword __asm, ad esempio:
__asm
	{
	mov ax,0
	int 10h
	}
Gianpaolo Bottin
- Live Long and Prosper -
Newsgroup: it.comp.lang.c++
Titolo: ritorno puntatore da funzione

Ciao a tutti,
volevo sottoporre una questione di concetto sperando di trovare qualcuno 
che possa chiarirmi la questione...
Allora, all'interno della classe CCommandBuilder ho un array di DWORD.
Da una classe esterna voglio chiamare la funzione sottostante 
(ComponiParametri) per elaborare questo array e renderne disponibile il 
puntatore in modo da poterlo leggere dall'esterno (non volglio mettere 
l'array pubblico).
Ci sono due modi per farlo:
DWORD *CCommandBuilder::ComponiParametri(DWORD &dwSizeArray, int NoLive);
oppure
DWORD CCommandBuilder::ComponiParametri(DWORD *pParam, DWORD 
&dwSizeArray, int NoLive);
come vedete la prima mi ritorna un puntatore, nella seconda il puntatore 
lo faccio tornare come parametro.
La questione è questa:
la prima mi funziona, ovvero mi ritorna l'indirizzo in cui inizia 
l'array, la seconda invece mi pone all'uscita sempre pParam=NULL 
(all'interno della funzione faccio un'assegnazione del tipo 
pParam=&adwParam[0]che risulta !=NULL).
Io non vedo dove sta la differenza.
grazie
Davide

 pParam=&adwParam[0]che risulta !=NULL).
pParam è un *copia* del puntatore che passi come argomento. Qualsiasi
modifica riguarda esclusivamente pParam e nient'altro. Mi sembra strano che
tu ti stupisca, visto che per l'argomento successivo hai usato,
giustamente, un reference. Se desideri lo stesso comportamente anche per il
primo argomento dovrai, ugualmente, usare un reference:
 DWORD CCommandBuilder::ComponiParametri(DWORD * & pParam, DWORD
    &dwSizeArray, int NoLive);
Max

Max M. ha scritto:

i effetti ora che vedo la tua soluzione mi rammarico di non averci pensato.
Cmq mi pare sia un utilizzo un pò particolare usare * & insieme. Avevo 
sempre visto ed io ho stesso l'ho sempre fatto, utilizzare il ritorno 
del puntatore da funzione.
grazie mille per il chiarimento
Davide

 Cmq mi pare sia un utilizzo un pň particolare usare * & insieme. 
se preferisci puoi sempre usare il doppio asterisco (puntatore a 
puntatore), anche se la sintassi d'uso dentro la routine 
richiede poi un dereferencing in piů.
ciao
Soviet

Newsgroup: it.comp.lang.c++
Titolo: Get line e "return"?

Salve,
Stavo giocando un po' con il cin.getline(...)
Facendogli prendere tutto quello che scrive l'utente fino al primo "a
capo" ('\n') e mettendolo in una string,
Pero' se l'utente mi batte subito un enter, come faccio a capirlo dalla
string?
Cioe' che check posso fare sulla string?
Grazie
Whamoo 

 string?
se ho capito bene quello che vuoi, controlli che la stringa ha lunghezza
0
#include <iostream>
#include <cstring>
#define BIGSTRING 10000
int main(){
        char buffer[BIGSTRING];
        while(1){
                std::cin.getline(buffer, BIGSTRING);
                if (strlen(buffer)==0)
                        std::cout << "VOID STRING" << std::endl;
                std::cout << buffer << std::endl;
        }
        return 0;
}
-- 
Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it.
    - Brian W. Kernighan

 
Si, puo' essere una buona idea, ma non era proprio quello che avevo in
mente... cmq funziona per cui mi sta bene cosi' =)
Grazie
whamoo

 mente... cmq funziona per cui mi sta bene cosi' =)
cosa avresti voluto fare di preciso?
tieni presente che 
buffer[0]=='\n' non funge, in quanto \n viene tolto dal buffer di input,
ma non viene messo nella stringa, afaik.


 ma non viene messo nella stringa, afaik.
Sisisi, so che il carattere terminale non viene aggiunto alla stringa,
no il mio problema era un altro, ma ho visto che si auto risolve, quindi
no problem thz
Whamoo

 no problem thz
dai che sono curioso... :)


 dai che sono curioso... :)
Praticamente, avevo un file da cui recuperavo 4 in 4, delle righe,
questo file a sua volta era creato prendendo le 4 linee in input
dall'utente:
Il mio problema e' che se il mio utente stolto invece di scrivere
qualcosa, mi batteva un enter mi sballava tutto lo scheva di 4 in 4, il
tuo metodo poteva essere utile, infatti scoprendo che la stringa era
vuota, potevo mettere qualcosa di default per ovviare.....
Ma visto che nella funzione save(), che salvava il file suddetto, ci
infilavo una stringa un std::endl, una stringa, un std::endl ec.....,
anche se una stringa era vuota poco importava,tanto alla lettura del
file la struttura 4 in 4 era integra grazie al ritorno a capo =)
Cmq grazie
Whamoo
Newsgroup: it.comp.lang.c++
Titolo: un tasto per continuare...

ciao a tutti,
sto facendo un programma dove ho un tot di record molto grande, e devo
dirgli che ne stampi solo 3 alla volta, ho fatto così:
------------------------
while (passo!=NULL)
 {
 cout<< "  STAMPA "
 a++;
) if (a==3)
 {
 do{
  cout<<"Premi e per continuare"<<"\n";
  cin>>s;
 }while(strcmp(s,"e");   } }
----------------------
il problema è che l'utente in realtà deve prima premere "e" e poi "invio",
non è possibile fare in modo che gli si dica premere n tasto per continuare
e qualsiasi tasto sia continui? ...oppure anche premere "e" per continuare
...ma che basti "e" e che non serva anche "invio"
...spero di essermi fatto capire!
Grazie da adesso
Francesc

 prova ad usare la funzione system();
 ovvero prova a fare:
if( a == 3)
 system("PAUSE");
miraccomando pero devi usare anke lalibreria : <stdlib.h>
cmq se mi passavi il programma intero potevi aiutarti di piu cmq cosi
dovrebbe andare!

 ha scritto nel messaggio
news:jPrb8.4641$eD3.2...@twister1.libero.it...


francesco
Spero di esserti stato d'aiuto, saluti
Enzo.

 ha scritto nel messaggio
news:pYBuPK=IHYsChyP0e...@4ax.com...

Potresti anche mettere un  getch() nel punto in cui si deve fermare per cui:
if(condizione==3)
    cout<<"Premere un tasto per continuare\n";
   getch();
cout<<end1;
...............qui il resto del programma ciao.

 l'esecuzione del system("PAUSE") rispetto ai cout<<
questo accade perche` cout e` uno stream bufferizzato. Questo significa 
che il testo non compare su schermo nel momento stesso in cui fai una 
chiamata all'operatore <<: solitamente il testo viene memorizzato in un 
buffer e visualizzato tutto insieme quando il buffer e` pieno (questa 
operazione si chiama "flushing").
Se vuoi forzare lo stream a fare il flush basta fare cosi`:
        cout << "ciao ciao" << flush;
Oppure
        cout << "ciao ciao" << endl;
Nota che quest'ultima chiamata esegue due operazioni: prima di tutto 
stampa il carattere di new-line, in seguito effettua il flush.
ciao Anto
-- 
Antonio Cuni, 19 anni, studente
Brainbench C++ Master: 4.73, higher than 99% of all previous test takers.
C Language: 3.79, higher than 92% of all previous test takers.
Guida C/C++ di Programmazione.it: 
http://cpp.programmazione.it

Newsgroup: it.comp.lang.c++
Titolo: Siete programmatori?

un nuovo sito per programmatori che sembra interessante.
Negli ultimi mesi saranno arrivati una mezza dozzina di post come il
tuo... ma non avete nient'altro da fare???
Luc.

E' un nuovo ceppo del virus del "Non Implementato Qui": "Non distribuito
dal/linkato al mio sito sulla programmazione" :-)
Ciao,
Nicola
P.S. Si sospetta l'esistenza di un'altra variante: "Implementato su
SourceForge, ma non da me".

Quanta gente c'è in giro che pretende di parlare a nome di tutti!!!!
Bob Rock
"Luc" <TOGL...@katamail.com-TOGLI> wrote in message
news:g9gs9tg1k5k0s8jkd...@4ax.com...

Newsgroup: it.comp.lang.c++
Titolo: Aiuto, grosso problema.........

Ciao a tutti.
Nessuno di voi sa come poter leggere in ambiente windows a quali gruppi
multicast il pc si e' iscritto? Spiegando meglio la cosa, io ho un pc
con una scheda di rete ethernet e volevo sapere dove poter leggere
l'indirizzo del gruppo multicast al quale le applicazioni si registrano
durante la navigazione su internet. DEve leggere direttamente dalla
ethernet? E come si fa? Oppure tutto e' registrato alivello piu' al;to
nel kernel?
tante grazie e ciao
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG



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: Baco nella map<> del C++Builder 4 SP2

Hello,
I think the map container has a bug.
The map<K,V>::find() method should return the last item of map if the key
researched is not found. This works only when the map is empty !!!!
In my app when the map has one item and I research an item not present in
the map, the find() method returns me the item I've inserted before. This
could be right, but the map<K,V>::end() method returns me ALWAYS an item
apparently empty !!!
In the Builder docs the find() method should returns the end() item if not
found !!!!!
WHY ???
Thanks, bye Lvca.

> WHY ???
Appunto, perchč? (scrivi in Inglese)
e poi il subject era in italiano...
--
Alessandro Monti

 WHY ???
Perche' l'STL e' definito cosi' per poter usare cicli come
map<int,int> laMappa;
for (map<int,int>::iterator i = laMappa.begin(); i != laMappa.end();
++i);
(e non solo!)
Ciao,
Nicola


In caso di NOT FOUND dovrebbe essere così, e invece mi ritorna l'unico
elemento che ho inserito nel map anche se non matcha la chiave !!!!!
Inoltre se eseguo l'erase() del primo elemento con
"coll.erase( coll.begin() );", la prima volta va bene, ma la seconda si
PIANTA DENTRO LA ERASE !!!!!!!!!!!
Ciao, Lvca.

 PIANTA DENTRO LA ERASE !!!!!!!!!!!
Mi aspetto che tu abbia almeno due elementi, per passare al metodo
erase() un iteratore valido. Non solo, ma mi aspetto pure che chiami
begin() due volte, perche' l'iteratore restituito la prima volta e'
presumibilmente invalidato dalla chiamata a erase(). Se valgono entrambe
le condizioni allora anche questo e' presumibilmente un baco.
Scusa la pedanteria, ma lavoro su una grossa applicazione realizzata con
C++Builder e che fa notevole uso di mappe; per questo l'esistenza di
bachi come quelli che descrivi mi pare improbabile.
Se invece esistono davvero le cose migliori da fare sono:
- Costruire un esempietto compilabile di qualche decina di righe;
- Sottometterlo come baco tramite il sito della Borland, 
www.borland.com
  (l'URL esatto non lo conosco);
- Segnalare il baco al newsgroup borland.public.cppbuilder.language, che
e'
  accessibile dal sever 
forums.borland.com
.
Ciao,
Nicola
P.S. Qui siamo fuori tema. Forse bisognerebbe creare
it.comp.lang.c++.borland...

Ok, ho risolto dal newsgroup borland. Il problema era sull'operatore < della
mia classe usata come chiave...
Grazie tante lo stesso.
Scusa, ma in che azienda lavori ???
Ciao, Lvca.

Newsgroup: it.comp.lang.c++
Titolo: aiutooooo!!

vorrei inizializzare un array di nome gmesein questo modo:
int gmese={0,30,28,31,30,31,30,31,31,30,31,31,31}
il problema è che gmese è membro di una classe ;
class Data{
    private:
     int ora,min,giorno,mese,anno;//mi servono per visualizzare la data in
formato tipo **10:55 12 dic 2003 **
  int gmese[13];
  public:
  Data();
  void set_data(int,int,int,int,int);
  int conta_giorni(int  );
  void get_data();
  } ;
ora ho provato ad inizializzarla con il costruttore Data in questo modo:
Data::Data(){
gmese={0,30,28,31,30,31,30,31,31,30,31,31,31}
}
Ma il compilatore mi da continuamente errori del tipo
syntax error : '{'
 error C2143: syntax error : missing ';' before '{'
 error C2143: syntax error : missing ';' before '}'
Error executing cl.exe.
data.obj - 3 error(s), 0 warning(s)
COME POSSO FARE PER INIZIALIZZARE QUESTO ARRAY AI SUDDETTI VALORI MANTENEDO
I DATI PRIVATI???
AVETE UN SUGGERIMENTO DA DARMI
GRAZIE
ALE

 data.obj - 3 error(s), 0 warning(s)
Ciao, sav.

 ALE
Francesco

 }
No, devi inizializzare i singoli elementi dell'array:
gmese[ 0 ] = 0;
gmese[ 1 ] = 30;
etc.
EMG
--
EMAG Software Homepage:     
http://www.emagsoftware.it
The EMG's ZX-Spectrum Page: 
http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: 
http://www.emagsoftware.it/tbosg

 }
Se il data member 'gmese' non deve essere alterato ma lo utilizzi solo in
modalita' read-only, io ti suggerisco:
// Data.h
class Data{
private:
     int ora,min,giorno,mese,anno;//mi servono per visualizzare la data
informato tipo **10:55 12 dic 2003 **
    static const int gmese[13];
public:
    Data();
    void set_data(int,int,int,int,int);
    int conta_giorni(int  );
    void get_data();
  } ;
Data::Data(){
}
// Data.cpp
const int Data::gmese[13]={0,30,28,31,30,31,30,31,31,30,31,31,31};
Ciao
Fabio

Newsgroup: it.comp.lang.c++
Titolo: Impostare la data del sistema

Programmatore C++ alle prime armi cerca funzione o qualcos'altro per leggere
e impostare la data di sistema in maniera non troppo difficile (anche con
MFC o API).
Inoltre mi piacerebbe sapere se esiste un modo per fermare l'esecuzione del
programma per qualche secondo.
Grazie dell'aiuto.

SetSystemTime
E` una api, per ulteriori info cerca nell'sdk.
Paolo
-----------------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------------------------

 wrote in message
7kofq8$1sh$1...@fe1.cs.interbusiness.it...


Grazie dell'aiuto.
Per leggere la data con MFC poi utilizzare la classe CTIME, per il resto ti
hanno già risposto.
Ciao
Terenzio

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

Sto eseguendo un corso da autodidata in C++, e sono agli inizi. Avrei alcune
domande da porre :
1)che cosa si intende per metodi?
2)le istanze sono l'insieme di due o più oggetti dello stesso tipo?Ho capito
male?
Vi ringrazio per le vostre risposte.

 male?
Non un insieme. Anche un solo oggetto di una certa classe (tipo) è
un'istanza.
EMG
Newsgroup: it.comp.lang.c++
Titolo: operator >>

secondo il draft che ho a disposizione:
5.8  Shift operators                                      [expr.shift]
3 The value of E1 >> E2 is E1 right-shifted E2 bit positions.  If E1 has
   an unsigned type or if E1 has a signed type and a  nonnegative  value,
   the  value  of  the  result is the integral part of the quotient of E1
   divided by the quantity 2 raised to the power E2.  If E1 has a  signed
   type  and  a  negative  value,  the resulting value is implementation-
   defined.
sapete se nello standard finale quell'"implementation-defined" è rimasto?
-- 
MSN: sirpsycho_78 -at- hotmail dot com
"Arditi, com'altro nomare questi baldi fiori del regime che osarono 
porre un imperativo categorico tra le sabbie bolsceviche di Marte."

 sapete se nello standard finale quell'"implementation-defined" è rimasto?
Si, e' rimasto.
Ciao,
Nicola

 Si, e' rimasto.
ti ringrazio!


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

Nella mia libreria ho una classe template di questo tipo :
////////////////////////////////////////////////////////////////////////////
template <class BASE>
class CBaseT : public BASE
{
public:
    CBaseT(){};
    CBaseT(int a, int b):BASE(a, b){};
    CBaseT(char *p, int n):BASE(p, n){};
    CBaseT(float f):BASE(f){};
    CBaseT(double d):BASE(d){};
    //...
};
////////////////////////////////////////////////////////////////////////////
Quando devo create una classe la definisco in questo modo :
////////////////////////////////////////////////////////////////////////////
class CMyDerived1 : public CBaseT < CExampleClass1 >
{
public:
    CMyDerived1(int a, int b) : CBaseT < CExampleClass1 >(a, b) { };
};
class CMyDerived2 : public CBaseT < CExampleClass2 >
{
public:
    CMyDerived2(char *p, int n) : CBaseT < CExampleClass2 >(p, n) { };
    CMyDerived2(float f) : CBaseT < CExampleClass2 >(f) { };
};
////////////////////////////////////////////////////////////////////////////
Questo codice si compila tranquillamente con il Visual Studio 6, ma non con
il Visual Studio 2003 perchè quest'ultimo, a differenza della versione 6,
verifica l'esistenza di tutti i costruttori nelle classi derivate
(CMyDerived1 e CMyDerived2) e non solo di quelli effettivamente
utilizzati...
In CMyDerived1 si aspetta quindi:
CMyDerived1(char *p, int n);
CMyDerived1(float f);
CMyDerived1(double d);
e in CMyDerived2:
CMyDerived2(int a, int b):BASE(a, b){};
CMyDerived2(double d):BASE(d){};
Come posso fare?
Aiutatemi per favore !
Grazie

 utilizzati...
basta che gli fornisci un costruttore di default con argomenti nulli o rendi
un costruttore gia' dichiarato il default dandogli gli argomenti di default
...
es:
CMyDerived1(float f = 0.0f);
CMyDerived2(double d = 0):BASE(d){};
spero di essere stato utile e non aver detto stronzate ;-)
ciao

 ...
Putroppo non può funzionare anche perchè altrimenti avresti più di un
costruttore di default...
Grazie comunque
Newsgroup: it.comp.lang.c++
Titolo: dichiarazione anticipata

Salve ho un dubbio:
se scrivo codice come questo:
class C2;
class C1
{
	int status;
	void set(C1 a, C2 b);
};
class C2 {};
void C1::set(C1 a, C2 b)
{
	;
}
allora tutto si compila perfettamente... ma ovviamente se inverto le
cose come in:
class C2;
class C1
{
	int status;
	void set(C1 a, C2 b);
};
void C1::set(C1 a, C2 b)
{
	;
}
class C2 {};
allora ciò non si compila perchè si segue il principio che ogni
oggetto per essere utilizzato deve prima essere dichiarato, infatti è
come se facessi:
b = 10;
int b;
Tuttavia se creo una classe annidata allora quel principio non vale
più:
class Host
{
private:
    static int outer_x;
public:
    // DEFINIZIONE classe ANNIDATA
    void doIt()
    {
    	Guest inner;
    	inner.display();
    }
    class Guest
    {
    public:
        void display();
    };
    void local();
};
qui inner di tipo Guest nella funzione doIt() è riconosciuto anche se
la classe Guest è definita più sotto...
Ora il mio dubbio è perchè all'interno di una classe ciò è
possibile mentre fuori non lo è??'

 possibile mentre fuori non lo è??'
I membri definiti all'interno della definizione della loro classe si
considerano tutti definiti alla fine della definizione della classe.
Ciao,
Nicola

 considerano tutti definiti alla fine della definizione della classe.
per membri intendi i metodi? perchè se è così allora, vuoi dire che,
il compilatore porrà
il metodo doIt() alla fine della definizione della classe e quindi
quando farò Guest inner allora
il nome sarà risolto perchè "sopra" vi sarà la definizione della
classe Guest...
Correct??
Grazie
Newsgroup: it.comp.lang.c++
Titolo: testo introduttivo per OOP

Ciao,
mi consigliate un libro, non devo leggerlo tutto, che *introduca* in modo
facile la programmazione orientata agli oggetti?
Deve saper spiegare classi, oggetti, ereditarietà, attributi ecc... in modo
soprattutto qualitativo, col giusto grado di astrazione. Mi serve
per una ricerca di carattere introduttivo, non devo (per ora) imparare la
OOP.
Un saluto e grazie in anticipo

Valerio ha scritto:

Thinking in C++ 2nd Edition by Bruce Eckel
http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html
è gratuito ed ha una splendida intro alla OOP

Newsgroup: it.comp.lang.c++
Titolo: Ridimensionare array ?

Io ho:
CMiaClasse *pMiaClasse;
che inizializzo con:
pMiaClasse = new CMiaClasse[10];
Se nel corso del programma avessi bisogno di aumentare
la dimensione del vettore, come potrei fare ?
Devo per forza creare un nuovo di vettore di 20 elementi,
e copiarci i 10 gia' esistenti ?
Spero ci sia un metodo migliore...
--
Ciao.
SkunkGuru.

 ha scritto nel messaggio
news:x4BN9.17098$Q%4.54...@news1.tin.it...

usa std::vector
Pela

> usa std::vector
E se volessi farlo io senza usare il vector ?
E senza usare una lista al posto dell'array... ?
--
Ciao.
SkunkGuru.


Puoi allocare con malloc e aumentare la memoria allocata con realloc
(funzioni ANSI C standard, la trovi in cstdlib ).
http://www.cplusplus.com/ref/cstdlib/realloc.html
ATTENTO: malloc/realloc NON invocano i costruttori!!

 E se volessi farlo io senza usare il vector ?
perche'?
cmq:
<code>
CMiaClasse *pMiaClasse;
pMiaClasse = new CMiaClasse[10];
CMiaClasse *old;
old=pMiaClasse;
pMiaClasse=new CMiaClasse[20];
for(int i=0;i<10;i++) pMiaClasse[i]=old[1];
delete [] old;
</code>
ripensa bene all'opzione std::vector
<code>
std::vector<CMiaClasse> pMiaClasse(10);
pMiaClasse.resize(20);
</code>
ciao

 ripensa bene all'opzione std::vector
Lo faro'... :-)
Avevo pensato anche ad una lista...
--
Ciao.
SkunkGuru.

Puoi anche implementare una tua classe Array che faccia lo "sporco lavoro"
da te citato (ossia creare un nuovo array temporaneo e copiarci gli
elementi...) in un suo metodo, che potrebbe anche essere un operatore
sovraccaricato, ad esempio += ...
Il lavoro è lo stesso ma guadagni in pulizia del codice (potrai ampliare il
tuo oggetto array quante volte vuoi e dove vuoi scrivendo una sola semplice
istruzione) e semplicità di lettura, obiettivi fondamentali per una buona
manutenzione dei programmi.
Saluti,
Sergio


Infatti c'č:
vector<CMiaClasse> pMiaClasse(10);
// ....usi pMiaClasse nel solito modo in cui si usano i vettori
pMiaClasse.resize(20);
// ora hai 20 elementi anziché 10.
riferimento: 
http://www.sgi.com/tech/stl/Vector.html
l'implementazione di resize() in genere cerca di evitare di ricopiare
sempre, allocando di piů di quello che serve (cosě un resize futuro forse
non rialloca).
Attento che se l'operazione principale č il resize() allora conviene usare
una lista, mentre se ti serve sia il resize frequente che l'accesso
immediato del vector allora bisogna pensare ad un altra struttura (vedi ad
esempio map: 
http://www.sgi.com/tech/stl/Map.html
 )
Newsgroup: it.comp.lang.c++
Titolo: [Forse OT]Djgpp e GNUwin32: problemi di installazione

Salve a tutti. Se sono OT ditemi dove mi posso rivolgere per risolvere
il problema.
Ho provato ad installare sia il Djgpp che il GNUwin32 per potermi
avvicinare al C/C++ nel mondo win (su linux non ci sono problemi, o
quasi). Ho settato per entrambi i compilatori le variabili ambiente
(li setto separatamente ad ogni boot, in modo da non creare casini con
gli eseguibili, in base al compilatore che mi serve). Ora quando
compilo il gcc di entrambi compila, ma mi crea un eseguibile non
funzionante. Sbaglio qualcosa? Se si, per favore aiutatemi, perche'
non ci capisco piu' niente :-(
Saluti a tutti
-----  Salmaso Raffaele       |" Qual e' 'l geometra che tutto s'affigge
|                             | per misurar lo cerchio, e non ritrova,     
-----  E-mail 
j30...@iol.it
  | pensando, quel principio ond'elli indige,
    |                         |  tal era io a quella vista nova:
 |  |  Cinisello Balsamo (MI) | veder volea come si convenne
 |  |                         | l'imago al cerchio e come vi s'indova"
                                  Dante, PD XXXIII, 133-138

non ci capisco piu' niente :-(
Esattamente come usi il compilatore?
Io ho il djgpp e funziona bene sia con la rhide per produrre
eseguibili a 32  che girano sotto DOS+DPMI (quindi anche in una
finestra dos di win95) sia per ottenere eseguibili win32. 
Per questi ultimi devi installare il pacchetto RSXNTDJ e
modificare alcuni file di configurazione come spiegato nell'
help.
Newsgroup: it.comp.lang.c++
Titolo: [OT] per soviet_mario

Ho provato a risponderti in PVT ma sembra che il tuo indirizzo emittente 
non esista
Posto qui la risposta alla tua domanda sul perl
 
 >
 >> Noi perlisti (il perl è un linguaggio unico) andiamo ben oltre,
 >> possiamo anche fare cosi:
 >>
 >> ---> start perl
 >> #!/usr/bin/perl
 >> use Inline CPP;
 >>
 >> my $r = Rect->new(2,3);
 >> print $r->area,"\n";
 >>
 >> __END__
 >> __CPP__
 >>
 >> class Rect {
 >> public:
 >> Rect(int x,int y) : _x(x),_y(y) {}
 >> int area()const { return _x * _y; }
 >> private:
 >> int _x,_y;
 >> };
 >> <-- end perl
 >>
 >> Anche se non conosci perl
 >
 > CUT
 >
 > ecco, io non conosco PERL per niente. Mi chiedevo, si riesce a dire 
in due parole per cosa è perfetto e per cosa è inadatto ? In 
particolare, ha qualche compatibilità con l'esigenza di sviluppare GUI 
(applicazioni ad interfaccia grafica come i classici ambienti rad), non 
avvalendosi di librerie proprietarie ?
 >
 > grazie in anticipo se mi vorrai rispondere ... se preferisci 
rispondere sul NG, non so, valuta tu
 > ciao
 > Soviet
 >
 >
 >
Il perl è un linguaggio molto particolare, e per apprendere la sua 
filosofia occorre tempo
Posso dirti dove è debole perchè è piu facile dire ciò piuttosto dove è 
forte
E' debole in scrivere programmi molto ottimizzanti (qui C ,C++, e 
assembler fanno da padrone)
E' debole nel mission critical  (qui andrei oltre C e C++ e andrei verso 
ADA)
E' debole nel real time, (C e assembler sono sicuramente meglio)
Per tutto il resto perl è ottimo (è possibile sviluppare anche in object 
oriented)
Il punto di forza di perl è comunque la sua immessa libreria terzi 
accessibile su 
www.cpan.org
 e la flessibilità nello sviluppo
Un punto debole (se cosi si puo dire) è che non è un linguaggio per 
tutti (per intenderci java è il classico linguaggio che viene insegnato 
alle masse)
Spero di essere stato esauriente
 
Ciao

 Ciao
 
 

 naturale ?
 
Non è ostico o innaturale, è solo 'particolare'

Newsgroup: it.comp.lang.c++
Titolo: Semplice domanda

E' possibile ritornare un reference o un pointer di un attributo di una
classe ?
Esempio
class C {
private:
    List1   L1;
public:
    List2   L2;
    ..................
    List1 &get_L1();
    List2 *get_L2();
}
C::get_L1() {
    return &L1;
}
C::get_L2() {
    return &L2;
}
grazie per la vostra attenzione
Tux

classe ?
Certo... ma e` una cosa che bisognerebbe evitare per
quanto possibile.
Paolo
--------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
--------------------------------------------------

     return &L2;
I dati non dovrebbero mai essere pubblici ma se proprio lo vuoi allora a
che serve un metodo che lo restituisce?
EMG

...

Per dare la possibilità ad uno user di leggere attributi di un oggetto
direttamente senza che l'oggetto restituisca i valori dell'attributo per
valore. Penso ad un attributo che sia una lista di stringhe molto lunga.
Risulterebbe pesante ritornare un attributo del genere. Almeno credo ?
Max

 Risulterebbe pesante ritornare un attributo del genere. Almeno credo ?
Ma se l'attributo è pubblico ci puoi accedere direttamente senza dover
passare attraverso un metodo che lo restituisca.
EMG

 Risulterebbe pesante ritornare un attributo del genere. Almeno credo ?
Si`.  Pero` puoi usare const-reference, senza cioe` permettere
all'utente modifiche _dirette_ al dato interno che e` sempre una
cosa molto dubbia... i modificatori fornirli invece come metodi.
Alex

 passare attraverso un metodo che lo restituisca.
Si`, ma e` meglio evitare gli attributi pubblici, di regola: se
chiunque puo` apportare modifiche, l'oggetto non puo` piu`
garantire nessuna invariante-di-classe sul proprio stato.
Un attributo privato, eventualmente con un accessore che
vi ritorna una const reference, e mutatori ben studiati per
garantire le invarianti, e` normalmente meglio.
Alex

 Si`, ma e` meglio evitare gli attributi pubblici, di regola:
Infatti è stato il primo suggerimento che ho dato ma visto che l'amico
insisteva con il volerlo pubblico non capivo il perché anche di un
accessor.
EMG

Risulterebbe pesante ritornare un attributo del genere. Almeno credo ?
la lista dovrebbe fornire semplicemente i metodi per
inserire/eliminare/modificare/ricercare elementi riducendo al
minimo un accesso diretto alle strutture interne da parte del
client

Newsgroup: it.comp.lang.c++
Titolo: libstdc++

spero di non essere OT perchè è un problema di installazione.
Ho scaricato le libstdc++2.91 per aggiornare la libreria del cygwin b20
in ambiente win32, il problema è che
gli opportuni makefile devono essere generati dall'esecuzione dello
script configure che non funziona sotto win.
Qualcuno è riuscito ad installarle ? se si mi puo dare le dritte
necessarie?
grazie anticipatamente
Nicola Z.

 script configure che non funziona sotto win.
La 2.91 non e' compatibile con le versioni ufficiali di gcc, ma solo
con la versione beta di sviluppo.  L'ultima versione istallabile senza
dolore con un gcc "ufficiale" (2.95.2.1) e' libstdc++ 2.90.8.  Non ho
la minima idea riguardo all'esistenza di un port verso Windows.
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it
The instructions said to use Windows 98 or better - so I installed FreeBSD.

la minima idea riguardo all'esistenza di un port verso Windows.
Conoscere il nemico è sempre stata un'ottima arma a proprio favore...
8-)))
Luc.


da una ricerca in rete ho trovato la versione 2.90.7 compilata per win32 (mingw32
gcc 2.95.2)
ciao Nicola Z.
Newsgroup: it.comp.lang.c++
Titolo: Recordset: Open -> Close = Mem++

Ciao, sono Enrico e vi scrivo perchè ho un grosso problema:
- ho creato una classe DB server ed all'interno di questa un metodo
OpenRecordset(QUERY) che mi serve per selezionare uno o più record da un
databese access su cui faccio delle operazioni.
La sequenza sembra funzionare:
1) Creo la query
2) Creo un Recordset e lo apro con la  query
3) Utilizzo i dati del Recordset
4) Chiudo (Close) il Recordset.
Il problema è che la Close() non dealloca la memoria allocata dalla Open(), e
poichè faccio un uso intensivo della serie descritta sopra, la memoria
utilizzata dall'applicazione continua a crescere.
Può qualcuno dirmi dove sto sbagliando???
Gli sarò infinitamente grato.
Enrico.
P.S. Se Vi è possibile rispondetemi anche personalmente perchè ogni tanto ho
problemi con le news.


Guarda il codice di CRecordSet::~CRecordSet. Li ci sono le chiamate "nativi"
di ODBC.

Newsgroup: it.comp.lang.c++
Titolo: Formattare il testo

Come posso formattare il testo in un componente Memo o eventualmente
RichEdit?
Ad esempio, vorrei scrivere una linea di testo che contenesse parola in
grassetto o colore differente dal default del testo...
Grazie Mille!!

Gabriela Salviati ha scritto nel messaggio

Con TMemo non puoi farlo,visto che esso é un componente che
visualizza solo testi ASCII.Quindi con esso il massimo che puoi fare é
cambiare il colore od il font dell'intero testo.Con il componente
RichEdit invece é possibile,e la procedura da utilizzare dovrebbe
essere questa:
RichEdit1->SelAttributes->Color = clRed;
RichEdit1->SelAttributes->Height += 5;
RichEdit1->Lines->Add("This line of text will be red. ");
Questo pezzo di listato dovrebbe inserire nel RichEdit una frase
scritta in rosso.Ovviamente per utilizzare di nuovo il font di default devi
rimodificare la proprietà SetAttributes.Prova e guarda se funziona.
Il Ghenio

 wrote in message 7qbnls$c55$1...@nslave1.tin.it...

Newsgroup: it.comp.lang.c++
Titolo: come far rimanere aperto il programma?

qualcuno sa dirmi se ho sbagliato qualcosa in questo programmino. non so
perchè ma quando il programma mi deve dare il prodotto dei due numeri si
chiude talmente velocemente che non riesco a leggere nulla.
non c'è una pausa o qualcosa del genere che posso immettere nel
programma. Aiutatemi.
#include <stdio.h>
main()
{
int num1, num2, num3;
printf("inserisci il primo numero\n");
scanf("%d, &num1");
printf("inserisci il secondo numero\n");
scanf("%d, &num2");
num3 = num1 * num2;
printf("il loro prodotto è %d", num3);
system(pause);
return 0;
}
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 system(pause);
              ^^^^^^
 devi scrivere system("pause");
ed includere la <stdlib.h>


 wrote in message
news:9f5bc73ff8cb86a3ea2...@mygate.mailgate.org...
qualcuno sa dirmi se ho sbagliato qualcosa in questo programmino. non so
perchč ma quando il programma mi deve dare il prodotto dei due numeri si
chiude talmente velocemente che non riesco a leggere nulla.
non c'č una pausa o qualcosa del genere che posso immettere nel
programma. Aiutatemi.
#include <stdio.h>
main()
{
int num1, num2, num3;
printf("inserisci il primo numero\n");
scanf("%d, &num1");
printf("inserisci il secondo numero\n");
scanf("%d, &num2");
num3 = num1 * num2;
printf("il loro prodotto č %d", num3);


[...super cut...]
impara a quotare per favore
----
Lawrence "Rhymes" Oluyede
rhy...@myself.com

[...super cut...]


Chiedo scusa.
Angel

Newsgroup: it.comp.lang.c++
Titolo: Classe misteriosa

Salve,
causa tesi di laurea, sto riguardando una classe realizzata in precedenza da
un altro studente, di cui devo completare ed integrare il lavoro.
Purtroppo non ho molta esperienza in C++ e quindi volevo chiedere il vostro
aiuto; qualcuno sa se la classe 'schTime' è compresa in qualche libreria
standard?
Se avete informazione in merito sulla sua locazione ed alle sue
caratteristiche, vi sarei molto grato se poteste aiutarmi.
Ciao.
\ClaN

 standard?
No, non e' una classe standard.
Ciao,
Nicola
Newsgroup: it.comp.lang.c++
Titolo: GPL ??

  ciao
ho sottomano una libreria grafica distribuita con la GPL.
Ho letto mille volte il testo della GPL, ma tra l'inglese che non
e' precisamente il mio forte e l'uso della parola Program
non sono riuscito a capire una cosa : e' possibile
creare prodotti commerciali con questa libreria ?
Il suo uso e' del tutto marginale al programma vero e proprio e
tra l'altro andrebbe integrata con delle mie altre funzioni;
essa comunica con un altra libreria (che non e' distribuita sotto
GPL!) migliorandone l'aspetto e a me serve solo per disegnare
qualche finestra.
Alla fine del testo della GPL c'e' un accenno alla stessa licenza
portata alle librerie, ma evidentemente cio' e' sfuggito all'autore...
ciao e grazie
            Mauro
 
da...@dei.unipd.it

Se ho capito bene, esistono due versioni della GNU Public Licence, una
per il codice 'normale' ed un'altra per le librerie (che è quella che
dovresti leggere tu).
La GPL sostanzialmente dice che se tu usi il codice sorgente di un
prodotto coperto da GPL, ciò che produci deve essere coperto esso stesso
da GPL, e tu ne devi distribuire il codice sorgente. Questo lo rende
'FREE SOFTWARE', nel senso che ognuno ha il diritto di rimaneggiare il
codice per adattarlo alle proprie esigenze. I rimaneggiamenti devono
contenere la storia del sorgente.
La cosa, comunque, non ti impedisce di vendere il programma che tu fai.
Il fatto che deve essere FREE è legato solo alla distribuzione del
sorgente. In teoria, se ho capito bene, tu potresti anche scaricarti GNU
Emacs e vendertelo, se ci riesci.
Per le librerie la faccenda è diversa, e sinceramente non ho mai letto
la licenza relativa. Ho comunque il sospetto che tu possa utilizzarla in
ogni caso, senza per questo essere costretto a rendere FREE il codice da
te scritto.
Consiglio una visita al sito della FREE SOFTWARE FOUNDATION,
all'indirizzo 
http://www.fsf.org/
 per avere maggiori informazioni.
Ciao,
            Flavio.
--
Ing. Flavio Poletti
STS s.r.l.
Via Odoardo Beccari, 13
00154 Roma, Italia
Tel. +39 6 5755096
FAX  +39 6 57287214
company e-mail: 
sts...@tin.it
private e-mail: 
pol...@writeme.com

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

Mi potete spiegare cosa si intende in c++ per incapsulamento.
Grazie e scusate se continuo a inviare domande banali


http://enzocap.interfree.it/OOP/2.htm
Studiati la guida di Marotta che e' in italiano ed anche "Thinking in C++"
di Eckel
www.bruceeckel.com
Maurus
Newsgroup: it.comp.lang.c++
Titolo: ALberi AVL

esiste in rete qualche realizzazione di classe mediante alberi
bilanciati tipo AVL? (no alberi 2-3-4) compreso l'operatore di
cancellazione...
se si dove li posso trovare?
Grazie e ciao!

vir...@iol.it
 (Virtuy) writes:

ftp://ftp.gnu.org/pub/gnu/avl/avl-1.4.0.tar.gz
      ^^^^^^^^^^^
      O qualunque altro mirror della Free Software Foundation.
E' C, non C++; ma facilmente wrappabile.  Ricorda che anche gli
std::set e simili cose sono realizzati con alberi bilanciati (hanno
requisiti O(N ln N)); sicuro che non basti un set o un multiset?
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it

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

Se io ho dei valori double o long double e voglio incollarli in una stringa
utilizzo la funzione sprintf. Fin'ora utilizzavo lo specificatore di formato
%f, però nel mio caso mi taglia parecchie cifre dopo la virgola. Per i
double o long double che specificatore mi conviene utilizzare?
Grazie e ciao a tutti.
Luca Carlon

 double o long double che specificatore mi conviene utilizzare?
Hai a disposizione %e, %E, %f, %g, %G divertiti!
ma non hai un manuale C?
-- 
Rhymes
rhy...@myself.com
" ride or die "

 ma non hai un manuale C?
Si, "e" serve per la notazione esponenziale. f per float o double, g per
scegliere tra i due. Gli altri non ci sono scritti. Ma utilizzando f o e mi
taglia sempre parecchie cifre decimali. Con il debugger si vedono nella
variabile, ma quando le butta dentro non le inserisce. Ho cercato anche
nella documentazione del Borland, ma ho trovato le stesse scritte. Con quale
di questi specificatori posso inserire nella stringa tutta la variabile che
possiedo, senza tagliarle niente?
Grazie.
Luca Carlon

 che possiedo, senza tagliarle niente?
Devi dirgli ad esempio %.xf dove x č il numero di cifre che vuoi


 Devi dirgli ad esempio %.xf dove x č il numero di cifre che vuoi
Grazie, perfetto, sul testo che avevo io c'era scritto che si poteva
determinare la lunghezza e la precisione, ma si guardavano bene dal dirmi
come :-)).
Un'ultima domanda, se devo inserire dei valori con la sprintf all'interno di
una stringa, utilizzando come nel mio caso molte cifre decimali, č possibile
fare in modo che non inserisca i valori in questo modo: 2.0000000? Cioč,
inserisca tutte le cifre decimali significative, e tralasci gli zeri (se ci
sono).
Grazie ancora.
Luca Carlon

 e tralasci gli zeri (se ci sono).
Ad occhio e croce non credo. Puoi fargli troncare i valori ma se usi uno
specificatore float... dovresti fare qlc trasformazione sui valori prima
di scriverli


 di scriverli
Fatto, ho trovato sull'hard disk una funziona che avevo scritto per
determinare se un numero è intero o meno. Ho usato quella, ed ho fatto in
modo che togliesse tutti gli zeri finali se ce ne fossero stati.
Grazie.
Luca Carlon
Newsgroup: it.comp.lang.c++
Titolo: L'intefaccia di una classe

Ciao a tutti,
sto imparando a programmare in c++ e sono arrivato a un punto del libro 
(C++ e fondamenti di programmazione) e non so come andare avanti.
Ho questi tre file.
// Fig 3.13 fig 03_13 pag 97
# include <iostream>
# include "GradeBook.h"
using namespace std;
int main(){
	GradeBook gradeBook1 ("Cs01");
	GradeBook gradeBook2 ("Cs02");
	cout << "Il nome è " << gradeBook1.getCourseName() << endl;
	cout << "Il nome è " << gradeBook2.getCourseName() << endl;	
}
-------------------------------------------------------------------
// fig 3.12 GradeBook.cpp pag 95
# include <iostream>
# include "GradeBook.h"
   GradeBook::GradeBook (string name){
       setCourseName(name);
	  }
   void GradeBook::setCourseName (string name){
   	   courseName = name;
	   }
   string GradeBook::getCourseName(){
   		 return courseName;
		 }
   void GradeBook::displayMessage(){
   	   cout << "Benvenuto " << getCourseName() << endl;
	   }
---------------------------------------------------------------------
// fig 3.11 GradeBook.h pag 94
# include <string>
using namespace std;
class GradeBook{
	  public:
		 GradeBook(string);
		 void steCourseName(string);
		 string getCourseName();
		 void displayMessage();
       private:
   		  string courseName;
		  };
----------------------------------------------------------------------
Non riesco a capire come fare vedere GradeBook.cpp quindi durante la 
compilazione mi segnala questo errore
   [Linker error] undefined reference to 
`GradeBook::GradeBook(std::string)'
e altri sulla falsa riga di questo
Ciao
Lele

 e altri sulla falsa riga di questo
Dipende dall'ambiente di sviluppo che utilizzi. Di solito si crea un 
progetto e ci si inserisce i files da compilare (e linkare).
E.

 progetto e ci si inserisce i files da compilare (e linkare).
E' quello che ho chiesto io nel mio post :-) . Comunque programmo 
(almeno provo) in c++ con dev-c++.
Ciao
Lele


1 - Crea un nuovo progetto (se non l'hai già fatto) File->New->Project
2 - Aggiungi i files .cpp al progetto: Project->AddToProject
E.

 2 - Aggiungi i files .cpp al progetto: Project->AddToProject
Grazie, mille ci sono riuscito.
Ciao
Lele
Newsgroup: it.comp.lang.c++
Titolo: Functions containing for are not expanded inline

Cosa significa questo messaggio di warning ?
Dunque ho un codice (un pò lunghino per pstarlo tutto) dove ho una classe
Pezzo (gioco degli scacchi) e diverse classi che ereditano da questa
(Pedone, Torre, Alfiere ecc.).
Poi ho una classe scacchiera con un array 7x7 di puntatori a Pezzo. Il
costruttore della classe scacchiera inizializza il gioco allocando i pezzi.
Per i Pedoni uso un ciclo for del tipo:
for(int i=0;i<=7;i++) tav[i][6]=new Pedone(i,6,0);
dove i è la colonna, 6 la riga (pedoni bianchi) e 0 è il colore (bianco)
quando compilo il codice ottengo quel warning che c'è nel subject in
corrispondenza delle due istruzioni for che allocano i pedoni.
Se poi nel main creo un oggetto di tipo scacchiera il costruttore arriva
fino alla fine (ho inserito una cout alla fine del metodo e la stringa
appare a video) ma subito dopo ottengo un errore di protezione di windows
(il programma ha eseguito un operazione non valida e sarà terminato).
Uso BCC 5.5 e win98.
Qualcuno sa aiutarmi ?
PS se nel main non creo l'oggetto Scacchiera l'errore non si verifica più !!
--
***********
Joyce
ICQ# 10607234
Per una pera, una pera cazzo...
per affrontare questa lunga giornata dura !
***********

Vuol dire che il tuo ciclo for e' contenuto in una funzione dichiarata
inline, esplicitamente o implicitamente perche' implementata
direttamente nella dichiarazione della classe.
Il compilatore ti sta solo avvertendo che non e' in grado di espandere
inline funzioni contenenti cicli for, e quindi la tua funzione sara'
trattata come una funzione normale.
Ciao,
Nicola


La scacchiera non è di 8*8?
nel ciclo for poi consideri infatti 8*8  (for(int i  = 0;i<=7;i++)
Forse è qui l'errore di protezione.

 wrote in message
8ntkda$vbp$1...@lacerta.tiscalinet.it...


 wrote in message
39A240B0...@divalsim.it...


 colonne.
Nel linguaggio comune una matrice 7x7 ha sette righe e sette colonne. Se
per matrice 7x7 intendi il costrutto C/C++
int matrix[7][7];
questo ha ancora 7 righe e 7 colonne. Gli indici partono si da 0, ma si
fermano a 6.
Ciao,
Nicola

 Insomma il malfunzionamento potrebbe dipendere da questo problema ?
L'espansione in linea di una funzione e' un meccanismo usato dal
compilatore per sostituire ogni chiamata di una funzione con il suo
codice, ottenendo presumibilmente dei vantaggi prestazionali, ma una
maggior dimensione dell'eseguibile.
Il warning lo puoi tranquillamente ignorare. Non e' certo questa la
causa del tuo problema.
Ciao,
Nicola


Potresti inviarmi il codice completo?ad 
alber...@tisclinet.it

 wrote in message
8ntrim$25n$1...@lacerta.tiscalinet.it...


progetto sarà finito, dopodichè mi dedicherò a java !!!!
Interessante... stai provando degli assaggini di vari linguaggi ?
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff


No. Sta preparando un esame (Ing. del Soft. al Polimi) e,
al contrario di altri che cercano la pappa pronta,
si sta sbattendo per fare i programmi e imparare qualcosa.
Bravo
Giusto?
Gerolamo

Gerolamo


 Andrea Griffini, Programmer
Gerolamo
Newsgroup: it.comp.lang.c++
Titolo: ABC

E' possibile sapere dove posso trovare delle risorse in rete( tutorial,
esercizi, esempi pratici) per iniziare da zero a programmare in C++?

 wrote in message
0Z%N5.12769$BF.4...@news.infostrada.it...


Newsgroup: it.comp.lang.c++
Titolo: C#.NET C++.NET: consigli.

Salve. Avrei necessità di includere delle librerie scritte in visual
c++.NET in un progetto c#.NET Come devo fare? Ho spulciato parecchio la
rete, ma non ho trovato nulla di specifico se non inclusioni di oggetti
com e codice "unmanaged" spiegato poco e male e con esempi a dir poco
criptici.
Essendo tutto in .NET, io credevo fosse relativamente facile effettuare
riferimenti alla libreria in questione, ma provando "a intuito" non ne
sono venuto a capo. In pratica (se fosse possibile) vorrei includere in
un MDIform C# una vista C++ di oggetti appartenenti alla libreria oppure
in alternativa mi basterebbe lanciare, dal form principale c#, una vista
staccata c++ di visualizzazione.
Qualcuno mi sa indicare dei buoni (e chiari) link dai quali partire? O
in alternativa darmi qualche dritta?
Grazie in anticipo a tutti.
Teo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

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

Scusate e grazie comunque.

Newsgroup: it.comp.lang.c++
Titolo: Informazioni sul Turbo Vision

Dove posso reperire informazioni sul TurboVision per
Borland C++ 3.1 su DOS ?
-- 
Grazie
Maurizio Felicella
mau...@netgroup.it

Dove posso reperire materiale sul Turbo Vision 


Dove posso reperire informazioni sul TurboVision per


 per Borland C++ 3.1 su DOS ?
Nel sito ftp di Borland alla seguente url
ftp://ftp.borland.com/pub/borlandcpp/devsupport/archive/turbovision/
Leggiti magari prima il file index.txt.
Saluti.
-- 
Jo Parrello (
jopa...@tin.it
)
http://space.tin.it/computer/giparrel