C++ Kitaplığı Kuralları
C++ kitaplığı, Standart C Kitaplığı ile aynı kurallara ve burada özetlenen birkaç kurala daha uyar.
Bir uygulamanın C++ kitaplığındaki türleri ve işlevleri bildirme biçiminde belirli bir enlem vardır:
Standart C kitaplığındaki işlevlerin adları extern "C++" veya extern "C" bağlantısına sahip olabilir. Kitaplık varlığını satır içi olarak bildirmek yerine uygun Standart C üst bilgisini ekleyin.
Kitaplık sınıfındaki bir üye işlev adının bu belgede listelenenler üzerinde ek işlev imzaları olabilir. Burada açıklanan bir işlev çağrısının beklendiği gibi çalıştığından emin olabilirsiniz, ancak bir kitaplık üyesi işlevinin adresini güvenilir bir şekilde alamazsınız. (Tür beklediğiniz gibi olmayabilir.)
Kitaplık sınıfı belgelenmemiş (sanal olmayan) temel sınıflara sahip olabilir. Başka bir sınıftan türetilmiş olarak belgelenen bir sınıf, aslında diğer belgelenmemiş sınıflar aracılığıyla bu sınıftan türetilebilir.
Bir tamsayı türü için eş anlamlı olarak tanımlanan bir tür, birkaç farklı tamsayı türünden biriyle aynı olabilir.
Bit maskesi türü, tamsayı türü veya sabit listesi olarak uygulanabilir. Her iki durumda da, aynı bit maskesi türündeki değerler üzerinde bit düzeyinde işlemler (ve gibi
AND
OR
) gerçekleştirebilirsiniz. Bir bit maskesi türünün öğeleriA
veB
sıfır gibiA
B
sıfır olmayan değerlerdir.Özel durum belirtimi olmayan bir kitaplık işlevi, tanımı böyle bir olasılığı açıkça kısıtlamadığı sürece rastgele bir özel durum oluşturabilir.
Öte yandan, bazı kısıtlamalar vardır:
Standart C Kitaplığı maskeleme makroları kullanmaz. İşlevlerin adları değil, yalnızca belirli işlev imzaları ayrılmıştır.
Bir sınıfın dışındaki kitaplık işlev adında ek, belgelenmemiş işlev imzaları olmaz. Adresini güvenilir bir şekilde alabilirsiniz.
Sanal olarak tanımlanan temel sınıflar ve üye işlevleri kesinlikle sanalken, sanal olmayan olarak tanımlananlar kesinlikle sanal değildir.
C++ kitaplığı tarafından tanımlanan iki tür, bu belge açıkça aksini önermediği sürece her zaman farklıdır.
Değiştirilebilir işlevlerin varsayılan sürümleri de dahil olmak üzere kitaplık tarafından sağlanan işlevler, herhangi bir özel durum belirtiminde listelenen özel durumların çoğunu oluşturabilir. Kitaplık tarafından sağlanan hiçbir yıkıcı özel durum oluşturmaz. Standart C Kitaplığı'ndaki işlevler, özel durum oluşturan bir karşılaştırma işlevini çağırdığında
qsort
olduğu gibi bir özel durum yayabilir, ancak aksi takdirde özel durumlar oluşturmaz.
Ayrıca bkz.
C++ Standart Kitaplığına Genel Bakış
C++ Standart Kitaplığında İş Parçacığı Güvenliği