gpt4 book ai didi

c++ - 定义期间变量的参数

转载 作者:行者123 更新时间:2023-11-27 23:44:03 25 4
gpt4 key购买 nike

我是一名 C 程序员,正在尝试在 C++ 和面向对象编程方面迈出一小步。我遇到了以下语法,但我无法完全理解它 - 为什么变量在定义时在这里有参数?

unique_ptr<int> myvar(new int);

我明白 unique_ptr将原始指针作为其构造函数的参数,但这种语法的基本原理是什么?这是C++98之后引入的语法吗?

编辑:

我发现特别令人困惑的是紧跟在新变量名后面的括号。对我来说——这就是函数的声明方式。起初我以为代码声明了一个名为 myvar 的函数但我知道这可能是错误的。

这与类似于 C 或 C++98 的语法有何不同?这种语法有名称吗?

最佳答案

不,这种语法一直是 C++ 的一部分。它用于初始化对象。一个更简单的例子:

int a(1); // a == 1

what's the rationale of this syntax?

我不知道,但如果非要我猜的话,那是因为它看起来像是对构造函数1 的调用。

struct X {
X(int); // looks like a function
};

X x(10); // looks like a call to the constructor

1:看起来像。您实际上不能调用构造函数。

关于c++ - 定义期间变量的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52155470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com