复制构造函数参数

2024-01-02

在复制构造函数中,为什么参数需要具有与其关联的默认值? 如果没有与它们关联的默认值并且构造函数中提供了多个参数,会发生什么情况?

例如:

X(const X& copy_from_me, int = 10);

int 有一个默认值,但是:

X(const X& copy_from_me, int);

才不是。第二种情况会发生什么?

http://en.wikipedia.org/wiki/Copy_constructor http://en.wikipedia.org/wiki/Copy_constructor


复制构造函数总是采用一个参数,即对其所属类型的引用,maybe其他参数,但他们must有默认值。

复制构造函数被称为复制函数,复制构造函数的目的是通过使用相同类型的对象作为创建新类型的基础来创建该类型的对象。

标准指定复制构造函数的类型为:

T(const &T obj);

这基本上允许在按值调用函数或按值返回该类型的对象期间创建临时对象。
此语法有助于创建新对象,如下所示:

T obj1(obj2);      <--------- Direct Initialization
T obj1 = obj2;     <--------- Copy Initialization

如果传递给复制构造函数的附加参数不被强制具有默认值,那么使用上述语法构造对象将是不可能的。
因此严格的条件,
there maybe复制构造函数的其他参数,但它们must有默认值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

复制构造函数参数 的相关文章

  • 没有强命名的代码签名是否会让您的应用程序容易被滥用?

    尝试了解authenticode代码签名和强命名 我是否正确地认为 如果我对引用一些 dll 非强命名 的 exe 进行代码签名 恶意用户就可以替换我的 DLL 并以看似由我签名但正在运行的方式分发应用程序他们的代码 假设这是真的 那么您似
  • 通过 CMIS (dotCMIS) 连接到 SP2010:异常未经授权

    我正在使用 dotCMIS 并且想要简单连接到我的 SP2010 服务器 我尝试用 C 来做到这一点 如下所示http chemistry apache org dotnet getting started with dotcmis htm
  • “构建”构建我的项目,“构建解决方案”则不构建

    我刚刚开始使用VS2010 我有一个较大的解决方案 已从 VS2008 成功迁移 我已将一个名为 Test 的控制台应用程序项目添加到解决方案中 选择构建 gt 构建解决方案不编译新项目 选择构建 gt 构建测试确实构建了项目 在失败的情况
  • WCF RIA 服务 - 加载多个实体

    我正在寻找一种模式来解决以下问题 我认为这很常见 我正在使用 WCF RIA 服务在初始加载时将多个实体返回给客户端 我希望两个实体异步加载 以免锁定 UI 并且我想利用 RIA 服务来执行此操作 我的解决方案如下 似乎有效 这种方法会遇到
  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • 秒表有最长运行时间吗?

    多久可以Stopwatch在 NET 中运行 如果达到该限制 它会回绕到负数还是从 0 重新开始 Stopwatch Elapsed返回一个TimeSpan From MSDN https learn microsoft com en us
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • 堆栈溢出:堆栈空间中重复的临时分配?

    struct MemBlock char mem 1024 MemBlock operator const MemBlock b const return MemBlock global void foo int step 0 if ste
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • C++ OpenSSL 导出私钥

    到目前为止 我成功地使用了 SSL 但遇到了令人困惑的障碍 我生成了 RSA 密钥对 之前使用 PEM write bio RSAPrivateKey 来导出它们 然而 手册页声称该格式已经过时 实际上它看起来与通常的 PEM 格式不同 相
  • while 循环中的 scanf

    在这段代码中 scanf只工作一次 我究竟做错了什么 include
  • 如何在整个 ASP .NET MVC 应用程序中需要授权

    我创建的应用程序中 除了启用登录的操作之外的每个操作都应该超出未登录用户的限制 我应该添加 Authorize 每个班级标题前的注释 像这儿 namespace WebApplication2 Controllers Authorize p
  • Windows 窗体:如果文本太长,请添加新行到标签

    我正在使用 C 有时 从网络服务返回的文本 我在标签中显示 太长 并且会在表单边缘被截断 如果标签不适合表单 是否有一种简单的方法可以在标签中添加换行符 Thanks 如果您将标签设置为autosize 它会随着您输入的任何文本自动增长 为
  • 链接器错误:已定义

    我尝试在 Microsoft Visual Studio 2012 中编译我的 Visual C 项目 使用 MFC 但出现以下错误 error LNK2005 void cdecl operator new unsigned int 2
  • 如何使用 C# / .Net 将文件列表从 AWS S3 下载到我的设备?

    我希望下载存储在 S3 中的多个图像 但目前如果我只能下载一个就足够了 我有对象路径的信息 当我运行以下代码时 出现此错误 遇到错误 消息 读取对象时 访问被拒绝 我首先做一个亚马逊S3客户端基于我的密钥和访问配置的对象连接到服务器 然后创
  • 混合 ExecutionContext.SuppressFlow 和任务时 AsyncLocal.Value 出现意外值

    在应用程序中 由于 AsyncLocal 的错误 意外值 我遇到了奇怪的行为 尽管我抑制了执行上下文的流程 但 AsyncLocal Value 属性有时不会在新生成的任务的执行范围内重置 下面我创建了一个最小的可重现示例来演示该问题 pr
  • 是否可以在 .NET Core 中将 gRPC 与 HTTP/1.1 结合使用?

    我有两个网络服务 gRPC 客户端和 gRPC 服务器 服务器是用 NET Core编写的 然而 客户端是托管在 IIS 8 5 上的 NET Framework 4 7 2 Web 应用程序 所以它只支持HTTP 1 1 https le
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new

随机推荐

  • 如何成功地将图像嵌入 HTML 中以在网络邮件客户端中显示?

    我正在尝试使用以 Base 64 数据 URL 编码的图像在 HTML 中进行签名 这是一个例子 img src 它与 Mac 上的 Mail 或 Thunderbird 等邮件软件配合良好 但不适用于 gmail outlook roun
  • includeHTML 用于shiny、shinyApps.IO 和 Dropbox

    晚上好 快速问题 与 R shiny 应用程序相关 托管在shinyApps IO 上 我希望在我的 Dropbox 帐户上驻留一个 HTML 文件 并使用 includeHTML 将其包含到一个闪亮的应用程序中 这样做的主要原因是我的本地
  • 从 iframe 访问父 URL

    好的 我有一个页面 在这个页面上有一个 iframe 我需要做的是在 iframe 页面上 找出主页的 URL 是什么 我已经搜索过 我知道如果我的 iframe 页面位于不同的域上 这是不可能的 因为这是跨站点脚本 但我读过的所有地方都说
  • 根据列的组合在数据框中创建唯一标识符

    我有以下数据框 id Lat Lon Year Area State 50319 36 0629 62 3423 2019 90 Iowa 18873 36 0629 62 3423 2017 90 Iowa 18876 36 0754 6
  • 从 jwilder/nginx-proxy 提供静态文件

    我有一个 Web 应用程序 由 uwsgi 提供的 django 我使用 nginx 将请求代理到特定容器 这是我的 default conf 中的相关片段 upstream web ubuntu com server 172 18 0 9
  • 限制 has_many 关系中关联数量的最佳实践?

    假设我有两个模型 用户和帐户 每个账号最多可以关联n个用户 一个用户只能关联一个账号 说 User 似乎很自然 belongs to account 和账户 has many users 但是 我不清楚通过 has many 声明限制关联数
  • C# 禁用/启用 USB 端口

    我想立即禁用 启用所有 USB 端口 我尝试了以下方法 更改注册表 具有管理员权限 disable USB storage Microsoft Win32 Registry SetValue HKEY LOCAL MACHINE SYSTE
  • 正则表达式匹配双引号外的左单引号

    Note 左双引号 ldquo 右双引号 rdquo 左单引号 lsquo 我当前的正则表达式是这样的
  • Angular 2:将视图/DOM 注入组件构造函数

    我不知道如何为组件提供对其视图的引用 以执行诸如在显示表单时关注输入元素之类的操作 我似乎无法注入Element or ng core ViewRef or ng core View进入构造函数 我怎样才能访问该视图 在 Angular 1
  • 将多个相同值字段分组到一个单元格中

    首先 记录按表组件显示在表中 而不是在报表中显示 结果如下 YEARS MONTHS SUMMONTH SUMQUARTER 2009 Jan 130984 432041 Feb 146503 Mar 154554 Apr 147917 4
  • 由于 google auth 已弃用,如何删除已打开的内容?

    根据最新通知 google plus oauth 已折旧 根据我的理解 只有当我在代码中使用 plus me 时 我才应该担心 My code google oauth remote app google consumer key app
  • Tk.winfo() 在 Windows 8 上返回错误的屏幕尺寸 / python 2.7.5

    为什么 tk winfo 返回 1280 x 800 的屏幕尺寸 我想以 1920 x 1200 的原始分辨率运行 我在控制面板中设置的 我可以以某种方式改变它吗 谢谢 Python 2 7 5 与 Windows 8 一起运行 使用控制面
  • 如果 StringSet 不存在,则追加或创建

    所以这应该很简单 我想将字符串附加到 DynamoDB 中的 StringSet 如果存在 或者创建 StringSet 属性 如果不存在 并设置值 如果我们可以在创建时用空数组初始化 StringSet 那就太好了 但遗憾的是我们不能 这
  • Spring 和 PostgreSQL 之间的编码错误

    我有一个 Spring Boot 版本 1 3 Web 应用程序 全部采用 UTF 8 格式 还有一个 PostgreSQL 服务器 服务器编码为 UTF 8 客户端编码为 WIN1252 问题是 当我手动在数据库中保存带有特殊字符的内容时
  • 当列数变化时动画回收器视图网格

    我正在使用一个RecyclerView with GridLayoutManager 用户可以在 2 和 4 之间切换跨度计数 这将产生一个动画 该动画将每个单元格的内置平移动画运行到其新位置 到目前为止我一直使用的代码是 Transiti
  • 将日期的 NSString 转换为 NSDate

    这可能是一个愚蠢的问题 但我似乎无法在这里或文档中找到答案 我想将 NSString 例如 9 22 2010 3 45 PM 转换为 NSDate 我知道使用 NSDateFormatter 但问题是 月份可以是一位数或两位数 同样 日期
  • Java 8 显示此错误。在封闭范围内定义的局部变量 itemList 必须是最终的或有效最终的

    我正在使用 java 8 编写代码 但我迭代了List然后找到RestaurantOrderBook使用类别类型 并把它List into a Map 它显示这个错误 局部变数itemList在封闭范围中定义的必须是最终的或有效最终的 Qu
  • 如何在 Play 2.6 上禁用 CSRF 过滤器?

    我一直在尝试将 Postman 与 Play Framework API 结合使用 但我不断遇到与 CSRF 过滤器相关的问题 我浏览了一些论坛 包括SO 寻找解决方案 并且众所周知的建议似乎正在添加 play filters disabl
  • std::optional::value_or() - 惰性参数求值

    是否可以评价std optional value or expr 以一种懒惰的方式论证 所以expr仅在没有值的情况下才计算 如果没有 什么是合适的替代品 include
  • 复制构造函数参数

    在复制构造函数中 为什么参数需要具有与其关联的默认值 如果没有与它们关联的默认值并且构造函数中提供了多个参数 会发生什么情况 例如 X const X copy from me int 10 int 有一个默认值 但是 X const X