- Codice:
cout<<"Dadi creati:"<<Dado::dadiCreati<<endl;
L'unica cosa è che dopo aver chiamato la funzione dadiCreati ho dimenticato le (), però il compilatore non mi ha dato segno di errore ma ha stampato un numero casuale. Perchè questo?
cout<<"Dadi creati:"<<Dado::dadiCreati<<endl;
olegfresi ha scritto:Lavorando nella mia classe dado in c++ ho definito in un file cpp di implementazione una funzione static che restituisce il numero di dadi chiamati, poi in un altro file nel main ho scritto questo comando:
- Codice:
cout<<"Dadi creati:"<<Dado::dadiCreati<<endl;
L'unica cosa è che dopo aver chiamato la funzione dadiCreati ho dimenticato le (), però il compilatore non mi ha dato segno di errore ma ha stampato un numero casuale. Perchè questo?
#include <iostream>
class A
{
public:
static void static_function(){
std::cout << "Dentro la classe A" << '\n';
};
};
void free_function()
{
std::cout << "Dentro una funzione libera" << '\n';
}
int main()
{
// Assegno a una variabile
void (*function_variable)() = A::static_function;
// & A::static_function
// Chiamo la variabile
function_variable();
// Assegno ancora
function_variable = free_function;
// & free_function
// Chiamo la variabile
function_variable();
}
Visitano il forum: Nessuno e 1 ospite