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. PHP等價於C#string.IsNullOrEmpty方法?
- 2. 等價於C++中的C++
- 3. 等價於Ruby中的findall()方法?
- 4. 接口中的等價方法
- 5. 等價於jquery中的$ .curCSS方法1.10
- 6. 是否有C++等價於XCode 7的objective-c的-debugDescription方法?
- 7. C中有結構等價類型嗎?
- 8. 方法「moveFirst()」ADODB,PDO等價
- 9. 在Linq C#中Java的Stream#Peek方法等價於什麼?
- 10. Java中C#匿名方法的等價物?
- 11. Java Integer.ValueOf C#中的方法等價與基數參數
- 12. Java中Calendar.get()方法的C#等價物是什麼?
- 13. 是java方法Thread.setDaemon(true)在C#中的等價物爲Thread.IsBackground = true?
- 14. 什麼是ES5中ES6方法(類)的等價物?
- 15. C#.NET中Objective-C調度隊列的等價方法或習慣用法
- 16. C#中fmodf的等價物?
- 17. 在C++中等價的NSMutableArray?
- 18. Angular $ .grep()方法的Angular 2中的等價方法是什麼?
- 19. 的typedef C和類型等價
- 20. C++等價的.split()
- 21. c#方法Math.IEEERemainder(x,y)在MATLAB中等價嗎?
- 22. 在C#中等價於-javaagent?或者:在C#中使用java框架的方法
- 23. javacv中opencv Mat.copyto()方法的等價方法是什麼?
- 24. 等價類LISP
- 25. C++中的C++參考類型的等價物#
- 26. C++/CLI等價的C#DateTime.Now.Ticks
- 27. 有沒有LINQ等價的方法?
- 28. 等價方法的傳遞性質
- 29. Dojo等價於jQuery的.data()方法
- 30. 的Python 3等價find()方法
這是不一樣的。你不能像Objective-C – user102008 2012-05-31 20:48:55