回答
你大概的意思是:
Myclass obj;
,那麼你想知道對象的名稱爲obj
,你想通過this
答案要做到這一點:
沒有你不能。 C++中沒有可用的反射。
有一個非常少量的反射可用。 –
@ IgnacioVazquez-Abrams:我相信不是以一種標準化的方式,但是如果能夠了解更多關於這點的信息會很好,你能提供一些參考嗎? –
@Als:'typeid'和'dynamic_cast'是基本的反射特徵。 – GManNickG
是的,是這樣的:
#include <iostream>
#include <typeinfo>
struct C
{
C(){
std::cout<<typeid(*this).name()<<std::endl;
}
};
int main() {
C c;
}
這給'type'不是'name'。 –
Als和我的答案完全不同。如果我錯過了這一點,請告訴我 –
讓我們假設有一個函數getName()
返回的對象的「名稱」。你期望結果如何用於下面的代碼?
struct Object {
Object() { getName(); }
void getName() { cout << getName(this) << endl; }
};
int main() {
new Object;
}
或者這個怎麼樣?
int main() {
Object o;
Object& r = o;
r.getName(); //should it print `r` or `o`?
}
總之:不,當然不是。
- 1. 我們可以說指針值指定了一個對象嗎?
- 2. 我們可以使用內部構造this指針
- 3. 我們可以使用out指針對象訪問託管代碼嗎?
- 4. 我可以使用' - >'操作符通過指針訪問對象指針嗎?
- 5. 我可以在對象名稱中使用單引號嗎?
- 6. 我們可以在聯合中使用指針嗎?
- 7. 我們可以像我們在名稱空間中那樣使用類名嗎?
- 8. 我可以使用C#中的對象名稱訪問對象屬性嗎?
- 9. EF 4.1 DbContextGenerator對象名稱 - 它們可以更改嗎?
- 10. 我可以通過名稱引用集合中的對象嗎?
- 11. 指針,我正確使用它們嗎? Objective-C的/可可
- 12. 我可以使用指定名稱創建類的實例嗎?
- 13. 我可以通過表名獲取模型類的名稱嗎?
- 14. 如何獲取指針名稱
- 15. 您可以使用變量值來指定jquery對象名稱嗎?
- 16. 我可以從boost的weak_ptr獲取一個原始指針嗎?
- 17. 我們可以使用$(this)和其他選擇器嗎?
- 18. 獲取對象指針指向
- 19. 獲取雙指針指向的對象
- 20. 我們需要指針嗎?
- 21. 獲取應用對象的指針
- 22. 我可以從對象獲取固定對象的GCHandles嗎?
- 23. C# - 獲取對象名稱?
- 24. jquery:獲取對象名稱?
- 25. 獲取對象名稱
- 26. 獲取對象的名稱
- 27. 我們可以使用他們的Java SDK在Google CloudSQL中創建或獲取數據庫名稱嗎?
- 28. Objective C - 是否可以獲取調用方法的對象的名稱或指針?
- 29. 我們如何使用可點擊的方向名稱制作指南針?
- 30. 我可以使用「index」作爲servlet名稱的名稱嗎?
什麼是對象名稱? – sharptooth
除了OP表示對象'變量名'或對象'類型'的歧義之外,Q中沒有任何錯誤。所以請理解OP是一個新用戶並允許他/她澄清那一點。 –