Aracılığıyla paylaş


Çevrim

C++ dili sanal işlevleri içeren bir temel sınıftan türetilmiş bir sınıf, temel sınıf türü için bir işaretçi uygulamaları türetilmiş bir sınıf nesnesi içinde bulunan sanal işlevleri çağırmak için kullanılabileceğini sağlar."Uymanız sınıf." sanal işlevleri içeren bir sınıf adlandırılır

Türetilmiş bir sınıf tanımları, temel sınıf türetilmiş tamamen içerdiğinden, bu temel sınıflar için sınıf hiyerarşisini bir işaretçi tonunu daha güvenlidir.İşaretçi bir temel sınıf verildiğinde, işaretçiyi aşağıya hiyerarşi artığını güvenli olabilir.Temel sınıftan türetilmiş bir tür işaret nesne gerçekten ise güvenli değildir.Bu durumda, gerçek nesne "tam nesne." olduğu söylenir Temel sınıf işaretçisine, bir "subobject" tam nesne için işaret edecek şekilde yetkilidir.Örneğin, aşağıdaki çizimde gösterildiği sınıf hiyerarşisi düşünün.

Sınıf hiyerarşisi

Sınıf Hiyerarşisi grafiği

Bir nesne türü C aşağıdaki şekilde gösterildiği gibi görünür.

b Subobject ve bir Subobject c sınıfı

B alt nesne ve bir alt nesne C sınıfı

Sınıfının bir örneği verilen C, var olan bir B subobject ve bir A subobject.Örneğini Cbirlikte A ve B subobjects, "tam nesne."

Çalışma zamanı tür bilgileri kullanarak, işaretçiyi aslında tam bir nesneye işaret denetlemek olası olduğundan ve güvenle, hiyerarşide başka bir nesneye işaret edecek şekilde çevrilebilir.Dynamic_cast işleci, bu tür yayınları yapmak için kullanılabilir.Ayrıca, işlem güvenli hale getirmek gerekli çalışma zamanı denetimi gerçekleştirir.

Nonpolymorphic türleri dönüştürme için kullanabileceğiniz static_cast (Bu konuda, statik ve dinamik çevrim dönüşümleri arasında ve her uygun olduğunda fark açıklanmaktadır) işleci.

Bu bölüm aşağıdaki konuları kapsar:

Ayrıca bkz.

Başvuru

Deyimler (C++)