gpt4 book ai didi

c++ - 复制构造函数参数中const,类型和&的顺序

转载 作者:行者123 更新时间:2023-12-02 10:19:23 25 4
gpt4 key购买 nike

有人告诉我const的顺序,类型和&referenced here无关。我的用户定义类型是PNG

所以我将复制构造函数写为:

PNG(const & PNG);

但是得到了错误:
error: C++ requires a type specifier for all declarations
PNG(const & PNG);

关于Stackoverflow的此类错误解决方案不处理副本构造函数,因此我决定发布一个不同的问题。

当我改写为
PNG(PNG const &);

错误消失了。我想念什么?复制构造函数是一种特殊情况吗?

最佳答案

这只是一个无效的语法。删除限定符const,您将获得

PNG( & PNG);

那没有意义。等同于编写指针而不是引用
PNG( * PNG);

在这两种情况下,都没有类型说明符。引用和指针应引用类型说明符。

你可以写
PNG(const PNG & );

要么
PNG( PNG const & );

注意与指针相反的地方,没有常量引用。例如,您可以编写指针
PNG( const PNG * const );

此类声明供引用
PNG( const PNG & const );

是无效的。

根据C++语法,引用是声明符的一部分。例如你可以写
PNG( PNG const ( & ) );

因为声明符可以放在括号中。

关于c++ - 复制构造函数参数中const,类型和&的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60920415/

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