2011-08-11 21 views
5

rand() işlevini ilklendirme değeri olarak kullanan bir işlevim varsa, program derlendiğinde veya işlev çalıştırıldığında bu değer bulunur mu?Başlatma değeri derleme zamanı veya çalışma zamanı olarak hesaplanır mı?

ki:

derleme zamanında bulunursa
int function(int init = rand()){ 
    return init; 
} 

, nasıl başlatma dinamik olmaya alabilirim? NULL'u başlangıç ​​değeri olarak kullanırdım, ama NULL ve init = 0 arasındaki farkı nasıl anlarım?

cevap

6

Değer, çalışma zamanında hesaplanır.

Hep küçük bir program oluşturmak ve uygulamalara kontrol edebilirsiniz:

int main() { 
    srand(time(NULL)); 
    std::cout << function() << std::endl; 
}