может ли функция вызывать другую, используя оператор точки

Tcl::instance().eval(at->proc_); инструкция в нс2. Можете ли вы объяснить концепцию размещения оператора точки между двумя функциями, как будто я не ошибаюсь оба instance() а также eval() являются функциями, и я никогда не подходил к такому понятию, когда одна функция вызывает другую, используя оператор точки.

0

Решение

Дикая догадка, ничего не зная о Tcl::instances:

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();
3

Другие решения

Tcl является одиночным, и вы получите текущий экземпляр с статический метод instance, который будет возвращать ссылку на объект типа Tcl, Вы получаете доступ к статическому члену класса с ::. Затем вы можете вызвать метод для такого объекта, с обычным . нотации.

Эта строка является сокращением для:

Tcl &tcl = Tcl::instance();
tcl.eval(at->proc_);

Вот краткий справочник для Tcl::instance вызов:

Один экземпляр класса объявлен в ~ tclcl / Tcl.cc как статическая переменная-член; программист должен получить ссылку на этот экземпляр для доступа к другим методам, описанным в этом разделе. Оператор, необходимый для доступа к этому экземпляру:

   Tcl& tcl = Tcl::instance();
0

По вопросам рекламы [email protected]