我只是想知道这在 C++ 中是否可行。
在 PHP(框架)中,我有时会看到类中的类(对象)和方法被访问:
$this->encrypt->decode($msg, $key);
在我的一个程序中,我有以下内容:
Directory *d = new Directory("dir");
d->open();
是否可以改为:
Directory *d = new Directory("dir")->open();
那么这两个方法可以在同一行执行吗?
最佳答案
PHP 代码 $this->encrypt->decode($msg, $key);
正在调用 encrypt
的 decode()
方法code> 在当前类中。
您的代码正在执行初始化类然后调用它的不同任务。
以同样的方式你不能在 PHP 中这样做:
$test = new Test()->method();
.. 你也不能用 C++ 来做,不。在这种情况下,您不会期望 $test
中的 Test
实例,而是在新实例化的实例上返回 method()
测试对象。</p>
就是说,如果您只需要 open()
的返回值(或什么都不需要)而不是 Directory
的实例,您确实可以像您说的那样内联它>:
Directory("dir").open();
关于c++ - 类似于 PHP 的类语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14419828/