簡體   English   中英

使這個 - >更短,節省一些時間打字

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM