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] );