Tcl::instance().eval(at->proc_);
指令。你能解释一下在两个函数之间放置一个点运算符的概念,好像我没有弄错instance()
和eval()
都是函数,我从来没有遇到过这样一个概念,其中一个函数通过使用来调用其他函数点运算符。
答案 0 :(得分:3)
狂野猜测对Tcl::instance
s一无所知:
Tcl::instance
是一个返回某个对象的函数。该对象有一个名为eval
的方法。程序员认为不适合命名返回的对象,而是直接调用结果上的方法。
struct Bar {
Baz getBaz();
}
struct Foo {
Bar getBar();
}
Foo foo = new Foo;
// the next two lines...
Bar bar = foo.getBar();
Baz baz = bar.getBaz();
// are exactly the same as this next line
baz = foo.getBar().getBaz();
答案 1 :(得分:0)
Tcl
是一个单例,您可以使用静态方法 instance
获取当前实例,该方法将返回对类型为Tcl
的对象的引用。 您使用::
访问类的静态成员。然后,您可以使用通常的.
表示法在此类对象上调用方法。
该行是:
的简写Tcl &tcl = Tcl::instance();
tcl.eval(at->proc_);
Here是Tcl::instance
电话的简短参考:
该类的单个实例在~tclcl / Tcl.cc中声明为静态成员变量;程序员必须获取对此实例的引用才能访问本节中描述的其他方法。访问此实例所需的语句是:
Tcl& tcl = Tcl::instance();