[英]Make this-> shorter and save some time typing
這個想法很簡單,使用@classVar而不是this-> classVar。 由CoffeeScript啟發,因為顯式訪問實例變量是一種很好的做法。
我想這樣做
#define @ this->
后來這個
class MyClass{
int foo;
void bar(){
@foo = 10;
}
}
但是GCC說@不是標識符,不會編譯它。 據我所知,@符號不是C ++標准的一部分應該是免費提供的。
有什么其他解決方案來縮短這個 - > ?
正如@Tom所提到的,在這種情況下你不必使用this->
。 只有在類變量和函數參數名相同的情況下才能使用它(即void bar(int foo){ this->foo=foo;}
)。
如果您想強調變量是成員變量,請遵循樣式指南(例如Google C ++樣式指南 )並相應地命名您的成員變量。
class MyClass{
int foo_;
void bar(){
foo_ = 10;
}
}
要么
class MyClass{
int mFoo;
void bar(){
mFoo = 10;
}
}
如果您嘗試檢查預處理器輸出cpp test.cpp > test.preprocessed
- 您會收到錯誤“錯誤:宏名稱必須是標識符”。 宏名稱應以字母開頭
您可以用更短的內容替換this
關鍵字:
#define T this
然后像這樣訪問它:
T->foo = 10;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.