首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >复制构造函数参数中常量、类型和&的顺序

复制构造函数参数中常量、类型和&的顺序
EN

Stack Overflow用户
提问于 2020-03-30 04:37:39
回答 1查看 75关注 0票数 1

有人告诉我,作为referenced hereconst、类型和&的顺序并不重要。我的用户定义类型是PNG

所以我把我的拷贝构造函数写成:

代码语言:javascript
复制
PNG(const & PNG);

但得到了错误:

代码语言:javascript
复制
error: C++ requires a type specifier for all declarations
    PNG(const & PNG);

Stackoverflow上对这样的错误的解决方案没有处理复制构造函数,所以我决定发布一个不同的问题。

当我将它重写为

代码语言:javascript
复制
PNG(PNG const &);

错误消失了。我遗漏了什么?复制构造函数是特例吗?

EN

回答 1

Stack Overflow用户

发布于 2020-03-30 04:54:00

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

代码语言:javascript
复制
PNG( & PNG);

这说不通。这与编写指针而不是引用相同

代码语言:javascript
复制
PNG( * PNG);

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

你可以这样写

代码语言:javascript
复制
PNG(const PNG & );

代码语言:javascript
复制
PNG( PNG const & );

注意,与指针相反,没有恒定的引用。例如,对于指针,您可以这样写

代码语言:javascript
复制
PNG( const PNG * const );

为了引用这样的声明

代码语言:javascript
复制
PNG( const PNG & const );

无效。

根据C++语法,引用是声明符的一部分。例如,您可以这样写

代码语言:javascript
复制
PNG( PNG const ( & ) );

因为声明符可以用括号括起来。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60920415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档