Aşırıya kaçan aşırı yüklü operator&
sınıfına sahibim. Bu tür nesneler new
kullanılarak oluşturuldu, bu yüzden değişkenin adresi erişilebilir oldu ancak şimdi statik nesne kullanmam gerekiyor. Adresini almak mümkün mü?C++ operatörsüz değişkenin adresini alın &
23
A
cevap
31
C++ 11, In fonksiyonu std::addressof
37
kullanabilir C++ 11 ya da üstü, std::addressof(object)
, <memory>
başlık tarafından beyan etti.
Tarihsel olarak, özellikle const
ve volatile
niteleyicileriyle anlaşma yapmak istediğinizde daha da garipti. addressof
ait Boost uygulanması kullandığı bir olasılık
reinterpret_cast<T*>(
&const_cast<char&>(
reinterpret_cast<const volatile char &>(object)))
reinterpret_cast
ancak object
nitelikli olduğunu çalışacak şekilde char&
için dönüştürülürken qualifer ekleyerek ilk; daha sonra bunları kaldırmak, böylece son dönüşüm işe yarayacaktı; son olarak adresi alıp, doğru türe dönüştürerek. T
, object
ile aynı niteleyicilere sahip olduğu sürece (object
'dan çıkarılan bir şablon parametresi olacaktır), sonuç gösterici doğru olarak nitelendirilecektir.
İlgili konular
- 1. lldb: Bir değişkenin adresini yazdırma
- 2. Kullanıcının IP Adresini Alın
- 3. Bir değişkenin türünü alın ve
- 4. Java'da Sistemin MAC Adresini Alın
- 5. java uygulamasından doğru yerel IP adresini alın
- 6. Sokak adresini lat/long pair alın
- 7. Neden değişkenin adresi
- 8. Geçerli isteğin hostname adresini node.js olarak alın. Express
- 9. İstemcinin gerçek IP adresini Rails ve Nginx ile alın?
- 10. Overkilling C++ 'da "değişkenin başlatılmasını başlatır" hatası?
- 11. y [i] Değiştirilebilir bir değişkenin C
- 12. Bir dize değişmezinin adresini adresleme C
- 13. C# Bilgisayarınızın MAC adresini "OFFLINE" edinin
- 14. C# lookup değerden alın
- 15. C# SettingsPropertyCollection'dan özellikler alın
- 16. Nesne nesnesinden alın C#
- 17. USB aygıtının ürün dizesini alın (C#/C++)
- 18. C# COM nesnesinden progID alın
- 19. Web sayfasının çıktısını alın C#
- 20. Powershell - Değişken alın C# Cmdlet
- 21. C# 'daki Twitter'dan fotoğraflar alın.
- 22. Bir ülkenin kıtasını alın C#
- 23. Windbg'de boyut (tür) alın
- 24. C# cinsinden Generikler - bağımsız değişkenli bir değişkenin örneğini nasıl oluşturabilirim?
- 25. Bir değişkenin tanımı neden C++ 11'in gelişimi sırasında değişti?
- 26. Statik bir üyenin adresini ele geçirme C++ SSS
- 27. GDB, C++ nesnesinin yapıcısındaki parametrenin yanlış adresini bildiriyor
- 28. Ana bilgisayarın varsayılan ağ bağdaştırıcısının yayın adresini nasıl alırsınız? C#
- 29. Bir MAC adresini (bir dizide) C dizgesine nasıl dönüştürürsünüz?
- 30. Site talebi kullanmadan gerçek IP adresini nasıl alabilirim? C#
* unary * 'operator &' aslında aşırı yüklü mü? –
@FredLarson Ben de şaşırdım: http://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B#Member_and_pointer_operators – KugBuBu
@KugBuBu: Evet, aşırı yüklenebileceğini gördüm. Ancak, bu davada aslında aşırı yüklü olan soru açık değildir. Sınıfları aşırı yükledim 'operator & '(dize birleştirme için). Tek operatöre aşırı yüklenme olağandışı bir durum. –