函数可以使用点运算符调用另一个函数

时间:2014-01-25 10:13:25

标签: c++ ns2

ns2中的

Tcl::instance().eval(at->proc_);指令。你能解释一下在两个函数之间放置一个点运算符的概念,好像我没有弄错instance()eval()都是函数,我从来没有遇到过这样一个概念,其中一个函数通过使用来调用其他函数点运算符。

2 个答案:

答案 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_);

HereTcl::instance电话的简短参考:

  

该类的单个实例在~tclcl / Tcl.cc中声明为静态成员变量;程序员必须获取对此实例的引用才能访问本节中描述的其他方法。访问此实例所需的语句是:

   Tcl& tcl = Tcl::instance();