类的php语法
PHP-Like syntax for classes
我只是想知道这在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()
方法
你的代码正在执行一个不同的任务,初始化一个类,然后调用它。
同样,在PHP中也不能这样做:
$test = new Test()->method();
. .你也不能在c++中这样做。在这种情况下,您不会期望在$test
中出现Test
的实例,而是在新实例化的测试对象上返回method()
。
也就是说,如果你只需要open()
的返回值(或者什么都不需要)而不需要Directory
的实例,你确实可以像你说的那样内联它:
Directory("dir").open();
不,除非将Directory类设置为显式支持这一点,否则这是不可能的。这通常涉及到使类中的大多数方法返回对自身的引用,以便您可以将方法调用链接在一起。
你的PHP示例是完全不同的。你发布的例子的c++版本应该是:
Directory("dir").open();
,没有捕获Directory("dir")
相关文章:
- 1d 智能指针不适用于语法 (*)++
- 助记符和指向成员语法的指针
- 有人能分解一下这个c++模板的语法吗
- C++避免重复声明的语法是什么
- QMetaObject invokeMethod的基于函数指针的语法
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- 为什么包含windows.h会产生语法错误,从而阻止类的实例化?(C2146,C2065)
- 单独定义模板化嵌套类方法的正确语法
- 共享指针和具有自定义删除程序的唯一指针之间的语法差异背后的任何原因
- 错误 C2760:语法错误:映射迭代器上意外的标记"标识符",预期的";"
- 为什么我会收到错误 C2143 语法错误:缺少"*"之前的';'?
- 奇怪的代码抛出编译错误模板< J,int aSize=10> C2143:语法错误:在"<"之前缺少";"
- 使用基类指针调用基类的值构造函数的语法是什么?
- 很好的语法来获取对向量/数组数据的大小引用?
- C++语法运算符功能?
- C++使用 rand 定义函数语法
- 什么文件可以修改 atom 的C++语法?
- 创建模板嵌套类实例的语法?
- C++语法差异:二维和一维数组(指针算术)
- 类的php语法