C++中是否存在與類方法等價的方法? 我知道在Objective-C中,我們可以在頭部聲明一個函數+ (void)aClassFunction;
,我們可以通過[myClass aClassFunction];
來調用它。有沒有辦法在C++中做到這一點?C++中的等價類方法
回答
是,使用static
:
class MyClass {
public:
static int classFunc() { return 45; }
};
cout << MyClass::classFunc() << endl;
你可以看到你通過類名,後跟範圍解析操作,::
,後跟函數的名稱來訪問它們。
static
方法是足夠接近(但不是等同的)替代目標C的類方法。區別在於,在C++中,您不能覆蓋靜態方法。
那樣使用在運行時計算出來的類「不同的是,在C++中,你不能重載靜態方法。」你指出的重要通知;) – Geoffroy 2011-12-20 01:59:51
所以你說我可以用靜態函數創建一個類並創建它的一個子類,但無法更改該函數? – 2011-12-20 02:01:44
@ChaseWalden靜態(「類」)函數不會被繼承。 – 2011-12-20 02:14:12
是的,使用靜態方法。
void SomeClass::DoSomething()
{
/* do something */
}
然後調用它像這樣:
SomeClass::DoSomething();
static void DoSomething();
它在.cpp這樣實現:
在.h文件中這樣聲明一個靜態方法
這是不一樣的。你不能像在Objective-C中那樣使用在運行時計算的類 – user102008 2012-05-31 20:49:16
- 1. C#等價於具有多個Setter方法的Java類
- 2. PHP等價於C#string.IsNullOrEmpty方法?
- 3. 等價於C++中的C++
- 4. java中的等價方法(numpy.random.normal(mean,var))
- 5. 等價於Ruby中的findall()方法?
- 6. 接口中的等價方法
- 7. 等價於jquery中的$ .curCSS方法1.10
- 8. 是否有C++等價於XCode 7的objective-c的-debugDescription方法?
- 9. C中有結構等價類型嗎?
- 10. 方法「moveFirst()」ADODB,PDO等價
- 11. Java中Calendar.get()方法的C#等價物是什麼?
- 12. Java Integer.ValueOf C#中的方法等價與基數參數
- 13. 在swift/objective c中是否有與getServingUrl()等價的方法?
- 14. 在C++中是否有等價的Java equals方法?
- 15. c#中Java方法'MessageDigest.getInstance()'的等價物是什麼?
- 16. Java中C#匿名方法的等價物?
- 17. 是java方法Thread.setDaemon(true)在C#中的等價物爲Thread.IsBackground = true?
- 18. 在Linq C#中Java的Stream#Peek方法等價於什麼?
- 19. Java通用類類型的C#等價語法
- 20. C方法簽名的目標C等價物
- 21. C#中的等於方法#
- 22. PHP中其他簡單類型的__toString()方法是否等價?
- 23. 什麼是ES5中ES6方法(類)的等價物?
- 24. C#.NET中Objective-C調度隊列的等價方法或習慣用法
- 25. C#中func_get_arg的等價物?
- 26. 在C++中等價的NSMutableArray?
- 27. C#中fmodf的等價物?
- 28. C#中等價的HttpSession
- 29. 的typedef C和類型等價
- 30. Angular $ .grep()方法的Angular 2中的等價方法是什麼?
這是不一樣的。你不能像Objective-C – user102008 2012-05-31 20:48:55