Kleidemos
31-03-2003, 14:33
Ora ho deciso di fare sta funz:
template<class T>
void Vettore<T>::Ridimensiona(int new_dim)
{
// Copia in una var temporanea
T tmp = new T[dimensione];
tmp = elementi;
int old_dim = dimensione;
// Cancella
delete[] elementi;
delete dimensione;
// Ricrea con nuova dim
elementi = new T[new_dim];
for(int i=0;i<old_dim;i++)
{
elementi[i] = tmp[i];
}
delete[] tmp;
}
Ma mi da:
--------------------Configuration: Vettore - Win32 Release--------------------
Compiling...
Test.cpp
C:\Progetti\Vettore\Vettore.cpp(123) : error C2440: 'initializing' : cannot convert from 'int *' to 'int'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\xmemory(59) : while compiling class-template member function 'void __thiscall Vettore<int>::Ridimensiona(int)'
C:\Progetti\Vettore\Vettore.cpp(124) : error C2440: '=' : cannot convert from 'int *' to 'int'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\xmemory(59) : while compiling class-template member function 'void __thiscall Vettore<int>::Ridimensiona(int)'
C:\Progetti\Vettore\Vettore.cpp(127) : error C2541: delete : cannot delete objects that are not pointers
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\xmemory(59) : while compiling class-template member function 'void __thiscall Vettore<int>::Ridimensiona(int)'
C:\Progetti\Vettore\Vettore.cpp(128) : error C2541: delete : cannot delete objects that are not pointers
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\xmemory(59) : while compiling class-template member function 'void __thiscall Vettore<int>::Ridimensiona(int)'
C:\Progetti\Vettore\Vettore.cpp(133) : error C2109: subscript requires array or pointer type
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\xmemory(59) : while compiling class-template member function 'void __thiscall Vettore<int>::Ridimensiona(int)'
C:\Progetti\Vettore\Vettore.cpp(135) : error C2541: delete : cannot delete objects that are not pointers
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\xmemory(59) : while compiling class-template member function 'void __thiscall Vettore<int>::Ridimensiona(int)'
Error executing cl.exe.
Vettore.exe - 6 error(s), 0 warning(s)
template<class T>
void Vettore<T>::Ridimensiona(int new_dim)
{
// Copia in una var temporanea
T tmp = new T[dimensione];
tmp = elementi;
int old_dim = dimensione;
// Cancella
delete[] elementi;
delete dimensione;
// Ricrea con nuova dim
elementi = new T[new_dim];
for(int i=0;i<old_dim;i++)
{
elementi[i] = tmp[i];
}
delete[] tmp;
}
Ma mi da:
--------------------Configuration: Vettore - Win32 Release--------------------
Compiling...
Test.cpp
C:\Progetti\Vettore\Vettore.cpp(123) : error C2440: 'initializing' : cannot convert from 'int *' to 'int'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\xmemory(59) : while compiling class-template member function 'void __thiscall Vettore<int>::Ridimensiona(int)'
C:\Progetti\Vettore\Vettore.cpp(124) : error C2440: '=' : cannot convert from 'int *' to 'int'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\xmemory(59) : while compiling class-template member function 'void __thiscall Vettore<int>::Ridimensiona(int)'
C:\Progetti\Vettore\Vettore.cpp(127) : error C2541: delete : cannot delete objects that are not pointers
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\xmemory(59) : while compiling class-template member function 'void __thiscall Vettore<int>::Ridimensiona(int)'
C:\Progetti\Vettore\Vettore.cpp(128) : error C2541: delete : cannot delete objects that are not pointers
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\xmemory(59) : while compiling class-template member function 'void __thiscall Vettore<int>::Ridimensiona(int)'
C:\Progetti\Vettore\Vettore.cpp(133) : error C2109: subscript requires array or pointer type
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\xmemory(59) : while compiling class-template member function 'void __thiscall Vettore<int>::Ridimensiona(int)'
C:\Progetti\Vettore\Vettore.cpp(135) : error C2541: delete : cannot delete objects that are not pointers
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\xmemory(59) : while compiling class-template member function 'void __thiscall Vettore<int>::Ridimensiona(int)'
Error executing cl.exe.
Vettore.exe - 6 error(s), 0 warning(s)