Aracılığıyla paylaş


Aşırı yüklü işlev kısıtlamaları

Birkaç kısıtlamaları kabul edilebilir bir fazla yüklenmiş işlevler kümesi yönetir:

  • Her iki işlev, aşırı yüklü bir işlevler kümesi farklı bağımsız değişken listesi olması gerekir.

  • İşlev bağımsız değişkeni listeleriyle aynı türdeki tek başına, dönüş türüne göre aşırı bir hatadır.

    Microsoft özel

Aşırı yüklenebilir Yeni işleç dönüş türü yalnızca temel alınarak — özellikle belirtilen bellek modeli değiştirici temel alınarak.

SON Microsoft özel

  • Üye işlevler yalnızca biri olan statik ve nonstatic temelinde aşırı yüklenemez.

  • typedefbildirimleri yeni türler tanımlamak değil; Bunlar, varolan türlerini eşanlamlıları tanıtmaktadır.Overloading mekanizması etkilemez.Aşağıdaki kod göz önünde bulundurun:

    typedef char * PSTR;
    
    void Print( char *szToPrint );
    void Print( PSTR szToPrint );
    

    Yukarıdaki iki işlevi aynı argümanı listeleri vardır.PSTRtür eşanlamlıdır char *.Üye kapsam içinde bu kod bir hata üretir.

  • Numaralanmýþ türleri farklı türleri ve aşırı yüklü işlevleri arasında ayırt etmek için kullanılabilir.

  • Türleri "dizi" ve "işaretçi" aşırı yüklü işlevleri arasında ayrım amacıyla aynı kabul edilir.Bu, yalnızca tek olarak dimensioned diziler için geçerlidir.Bu nedenle, aşağıdaki işlevleri çakışma aşırı ve bir hata iletisi üretir:

    void Print( char *szToPrint );
    void Print( char szToPrint[] );
    

    Çarp dimensioned diziler için ikinci ve izleyen tüm boyutları türü bir parçası olarak kabul edilir.Bu nedenle, bunlar aşırı yüklü işlevleri arasında ayrım içinde kullanılır:

    void Print( char szToPrint[] );
    void Print( char szToPrint[][7] );
    void Print( char szToPrint[][9][42] );
    

Ayrıca bkz.

Başvuru

Aşırı genel bakış