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