请问C++中不实例化一个类能否直接调用它的成员方法

请问C++中不将一个类实例化为一个对象,是否可以直接通过这种方式调用类的方法呢?
classname :: function ( arg ...);

我一直认为是不行的,但最近经常碰到直接调用方法的例子,比如这个:
main ( )
{
.......
QLabel *label = new QLabel;
QScrollBar *scroll = new QScrollBar;
QObject::connect( scroll, SIGNAL(valueChanged(int)),
label, SLOT(setNum(int)) );
......
}
QObject 没用经过实例化就直接在main函数中调用了它的方法,这是怎么回事呢??

请大家帮帮忙,谢谢~~~

很明显,这是可以的。类方法可以通过类名或实例来进行访问,这是语法规定。一个类的方法,不关是通过类名或是实例访问,不关访问多少次它们指向的始终是同一段代码。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-07-18
看看 QObject::connect 是不是一种 static 类型的方法。普通的的类的方法是必须通过实例化的对象调用的,但是声明为 static 类型的方法是属于类的,不是属于对象的,可以直接用类名进行调用。本回答被提问者采纳
第2个回答  2010-04-02
类成员或方法直接定义为static就可以实现了
第3个回答  2010-04-02
好高深的问题,后悔没好好学习
相似回答