有人告诉我,作为referenced here,const、类型和&的顺序并不重要。我的用户定义类型是PNG。
所以我把我的拷贝构造函数写成:
PNG(const & PNG);但得到了错误:
error: C++ requires a type specifier for all declarations
PNG(const & PNG);Stackoverflow上对这样的错误的解决方案没有处理复制构造函数,所以我决定发布一个不同的问题。
当我将它重写为
PNG(PNG const &);错误消失了。我遗漏了什么?复制构造函数是特例吗?
发布于 2020-03-30 04:54:00
这只是一个无效的语法。删除限定符const,您将获得
PNG( & PNG);这说不通。这与编写指针而不是引用相同
PNG( * PNG);在这两种情况下,都没有类型说明符。引用和指针应引用类型说明符。
你可以这样写
PNG(const PNG & );或
PNG( PNG const & );注意,与指针相反,没有恒定的引用。例如,对于指针,您可以这样写
PNG( const PNG * const );为了引用这样的声明
PNG( const PNG & const );无效。
根据C++语法,引用是声明符的一部分。例如,您可以这样写
PNG( PNG const ( & ) );因为声明符可以用括号括起来。
https://stackoverflow.com/questions/60920415
复制相似问题