c++ - 类似于 PHP 的类语法

标签 c++ oop object

我只是想知道这在 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); 正在调用 encryptdecode() 方法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/

相关文章:

c++ - 在 C++ 中从 const 字符串初始化 void* 的任何非(char*)正确方法

c++ - 为什么这个简单的 enable_if 不起作用?

java - 从公共(public)静态上下文访问私有(private)静态方法

javascript - 自动绑定(bind)JS类方法有什么好方法?

python - 处理具有作为参数给定的大量属性的对象的正确/Pythonic 方法

c++ - 使用 IwGxFontDrawText 显示西里尔字体

php - 如何在 PHP 中创建公共(public)列表对象?

java - 我应该如何为该类的每个实例声明一个可见的常量集?

java |找不到符号 |返回一个对象

c++ - 我的 DirectX 游戏引擎的 WPF 世界编辑器