I (. S 204, §8.3.6 olarak) bir süre önce C++11 standard draft geçmekte ve bu geldi edildi: C++ - İşlev kapsamları içindeki işlev bildirimleri?
void g(int = 0, ...); // OK, ellipsis is not a parameter so it can follow
// a parameter with a default argument
void f(int, int);
void f(int, int = 7);
void h() {
f(3); // OK, calls f(3, 7)
void f(int = 1, int); // error: does not use default
// from surrounding scope
}
void m() {
void f(int, int); // has no defaults
f(4); // error: wrong number of arguments
void f(int, int = 5); // OK
f(4); // OK, calls f(4, 5);
void f(int, int = 5); // error: cannot redefine, even to
// same value
}
void n() {
f(6); // OK, calls f(6, 7)
}
Bu
işlevlerine varsayılan argümanlarla yapmak zorunda. Hangi inme bana işlev bildirimleri işlev kapsamında ortaya çıktı gerçeği oldu. Neden? Bu özellik ne için kullanılır?
Bunu yalnızca kapsam içinde çağrılacağını bildiğim bir işlevi bildirmek için kullandım. – Atul
Kısa cevap, nadiren kullanıldığıdır. Teoride, (örneğin) bir değişkeniniz ve aynı ada sahip bir işleviniz varsa yararlı olabilir. Bir iç kapsamdaki bir beyan, bir dış kapsamda bir gizlenecektir. –