Name Hiding etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Name Hiding etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

27 Kasım 2014 Perşembe

Name Hiding

Name Hiding Nedir?
Eğer bir sınıf ve metod aynı isime sahipse, sınıf görünmez hale gelir. Bu özellik C++ dilinin ne kadar karmaşık bir hal alabileceğine iyi bir örnek.

A class name (9.1) or enumeration name (7.2) can be hidden by the name of a variable, data member, function, or enumerator declared in the same scope.

Örnek:
void test(){cout<<"function"<<endl;}

struct test
{
    test(){cout<<"class"<<endl;}
};

int main()
{
    test();//function çıktısı verir.
    return 0;
}

Bir başka örnekte x yine function olarak algılanıyor.
#include <iostream>

std::string x();

int main() {

    std::cout << "x: " << x << std::endl;//1 verir
    return 0;
}