C++中将一个类对象分配给另一个类对象

2023-12-26

我想在 C++ 中将一个类对象分配给另一个类对象。

Ex:有一个类别为“狗”,另一个类别为“猫”。为每个 (d1 & c1) 创建一个实例。不想使用任何STL。我想在我的代码中使用这个语句

d1 = c1;

Program

class dog
{
    char  dc;
    float df;
    int   di;   
public:
    void setdata2(char c, float f, int i)
    {   dc = c; df = f; di = i; }
    void showdata2()
    {   cout  <<"char =" << dc <<", float =" << df <<", int =" << di  <<endl;   }
};


class cat
{
    float cf;
    int ci;
    char cc;    
public:
    void setdata(float f, int i, char c)
    {   cf = f; ci = i; cc = c; }
    void showdata()
    {   cout <<"float =" << cf <<", int =" << ci <<", char =" << cc  <<endl;    }
};


int main()
{
    dog d1, d2;
    cat c1, c2;

    d1.setdata2('A', 56.78, 30);
    c1.setdata(12.34, 2, 3);
    d1.showdata2();
    c1.showdata();

    d2 = c1;        // Question 1

    dog d3(c1);     // Question 2

    dog d4 = c1;    // Question 3

    return 0;
}

请回答问题1/2/3 each 分别地.


我想在 C++ 中将一个类对象分配给另一个类对象。

可以分配类型的对象A到一个类型的对象B if A is 隐式可转换 http://en.cppreference.com/w/cpp/language/implicit_conversion to B, and B is 可分配的 http://en.cppreference.com/w/cpp/concept/CopyAssignable- 或者如果B has an 超载 http://en.cppreference.com/w/cpp/language/operators接受类型对象的赋值运算符A.

有两种方法可以定义自定义类型的转换A到不相关的类型B。您可以定义一个转换函数 http://en.cppreference.com/w/cpp/language/cast_operator for A,或者你可以定义一个转换构造函数 http://en.cppreference.com/w/cpp/language/converting_constructor对于类型B.

1)这是复制作业。上述解释适用。要么定义cat::operator dog() or dog::dog(cat) or dog::operator=(cat).

2)这是直接初始化 http://en.cppreference.com/w/cpp/language/direct_initialization。这不是您所问的任务。定义隐式转换也适用于这种情况,但重载的赋值运算符则不行。然而,重载构造函数将是替代的第三种选择。

3)尽管这在语法上看起来有点像赋值,但这实际上是复制初始化 http://en.cppreference.com/w/cpp/language/copy_initialization。适用与 2) 相同的规则。


附言。请注意,您正在按名称定义两个变量d3。这是一个错误。

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

C++中将一个类对象分配给另一个类对象 的相关文章

  • 如何使用 C# 中的参数将用户重定向到 paypal

    如果我有像下面这样的简单表格 我可以用它来将用户重定向到 PayPal 以完成付款
  • GLKit的GLKMatrix“列专业”如何?

    前提A 当谈论线性存储器中的 列主 矩阵时 列被一个接一个地指定 使得存储器中的前 4 个条目对应于矩阵中的第一列 另一方面 行主 矩阵被理解为依次指定行 以便内存中的前 4 个条目指定矩阵的第一行 A GLKMatrix4看起来像这样 u
  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • 按成员序列化

    我已经实现了template
  • 查找c中结构元素的偏移量

    struct a struct b int i float j x struct c int k float l y z 谁能解释一下如何找到偏移量int k这样我们就可以找到地址int i Use offsetof 找到从开始处的偏移量z
  • 嵌套接口:将 IDictionary> 转换为 IDictionary>?

    我认为投射一个相当简单IDictionary
  • BitTorrent 追踪器宣布问题

    我花了一点业余时间编写 BitTorrent 客户端 主要是出于好奇 但部分是出于提高我的 C 技能的愿望 我一直在使用理论维基 http wiki theory org BitTorrentSpecification作为我的向导 我已经建
  • OleDbDataAdapter 未填充所有行

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • 关于 C++ 转换:参数 1 从“[some_class]”到“[some_class]&”没有已知的转换

    我正在研究 C 并且遇到了一个错误 我不知道确切的原因 我已经找到了解决方案 但仍然想知道原因 class Base public void something Base b int main Base b b something Base
  • C++ OpenSSL 导出私钥

    到目前为止 我成功地使用了 SSL 但遇到了令人困惑的障碍 我生成了 RSA 密钥对 之前使用 PEM write bio RSAPrivateKey 来导出它们 然而 手册页声称该格式已经过时 实际上它看起来与通常的 PEM 格式不同 相
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • WCF 中 SOAP 消息的数字签名

    我在 4 0 中有一个 WCF 服务 我需要向 SOAP 响应添加数字签名 我不太确定实际上应该如何完成 我相信响应应该类似于下面的链接中显示的内容 https spaces internet2 edu display ISWG Signe
  • while 循环中的 scanf

    在这段代码中 scanf只工作一次 我究竟做错了什么 include
  • 如何在 C 中调用采用匿名结构的函数?

    如何在 C 中调用采用匿名结构的函数 比如这个函数 void func struct int x p printf i n p x 当提供原型的函数声明在范围内时 调用该函数的参数必须具有与原型中声明的类型兼容的类型 其中 兼容 具有标准定
  • 如何序列化/反序列化自定义数据集

    我有一个 winforms 应用程序 它使用强类型的自定义数据集来保存数据进行处理 它由数据库中的数据填充 我有一个用户控件 它接受任何自定义数据集并在数据网格中显示内容 这用于测试和调试 为了使控件可重用 我将自定义数据集视为普通的 Sy
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • Windows 窗体:如果文本太长,请添加新行到标签

    我正在使用 C 有时 从网络服务返回的文本 我在标签中显示 太长 并且会在表单边缘被截断 如果标签不适合表单 是否有一种简单的方法可以在标签中添加换行符 Thanks 如果您将标签设置为autosize 它会随着您输入的任何文本自动增长 为
  • 如何使用 C# / .Net 将文件列表从 AWS S3 下载到我的设备?

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

    这是我的问题 现在我有一个 Linux 服务器应用程序 使用 C gcc 编写 它与 Windows C 客户端应用程序 Visual Studio 9 Qt 4 5 进行通信 是什么very在不完全破坏现有协议的情况下向双方添加 SSL
  • 如何从两个不同的项目中获取文件夹的相对路径

    我有两个项目和一个共享库 用于从此文件夹加载图像 C MainProject Project1 Images 项目1的文件夹 C MainProject Project1 Files Bin x86 Debug 其中有project1 ex

随机推荐

  • 如何查看 WooCommerce 感谢页面

    在 WordPress 中is page 可以通过 ID 名称或 slug 检查页面 但我们如何检查 WooCommerce 感谢页面是否是结帐页面的一部分 我们还有很多 WooCommerce条件标签 https docs woocomm
  • jquery 从索引中选择行

    我希望 给定一个表 id 和一个行索引 从 0 开始 选择该索引处的行 以便我可以将背景颜色应用于其所有 td 我熟悉基本选择 但不确定如何使用索引变量来执行此操作 这应该可以为你解决问题 id tbody gt tr eq rowinde
  • 将 Realm 与 RxJava 2 结合使用

    我在 Android 应用程序中使用 RxJava 2 并集成 Realm 据我所知 Realm 默认只支持 RxJava 1 并且允许Observable查询时返回RealmResults
  • 从 SQL Server Management Studio 连接到数据库服务器时出错

    最近 在尝试从 SQL Server Management Studio 连接到任何 SQL Server 数据库时 我收到错误 Service Microsoft SqlServer Management IRegistrationSer
  • Sass 导入不会爬行 node_modules 来查找合适的包

    我正在使用 bootstrap sass 节点模块已安装 我应该期望我可以在任何 scss 文件中使用以下行导入到适当的工作表中 import bootstrap 我的理解是编译器会爬行直到找到 package json 跳到 node m
  • 弃用 WebSecurityConfigurerAdapter 类后,authenticationManagerBean 函数的替代方法是什么? [复制]

    这个问题在这里已经有答案了 在 Spring Boot 2 7 4 中 WebSecurityConfigurerAdapter类包含authenticationManagerBean函数已被弃用 还有什么选择呢 这些天我也遇到了和你一样的
  • 将使用 %(QUERY_STRING) 的 Mod 重写规则转换为 NGINX 重写格式?

    最近几天我一直在尝试将以下 Apache Mod Rewrite 重写规则转换为 NGINX 格式 有人知道我哪里出错了吗 MOD 重写 RewriteCond QUERY STRING topic 0 9 RewriteRule foru
  • 无法子类化 DispatchGroup - “仅通过 Objective-C 运行时可见”?

    子类化是不可能的DispatchGroup 怎么办呢 Note 这个问题终于在 iOS 10 中得到了修复 例如 与一个组一起携带一个有状态的包 class PushDispatchGroup DispatchGroup var sentI
  • YouTube 自动嵌入在帖子中不起作用

    即使您不使用任何特殊标签 YouTube 嵌入功能也应该可以使用 只需在帖子的空闲行中发布视频的 URL 即可 自动嵌入在index php 页面上运行 可以通过预告片部分看到 但在帖子本身内部 嵌入不起作用 我已经在 媒体 部分设置了所有
  • 检查是否包含 jQuery

    我正在制作几个小部件 这些小部件可以单独或成对包含 并且没有特定的顺序 我确保使用以下脚本加载 jQuery if typeof jQuery undefined alert about to load jquery var esm scr
  • 将 --process-dependency-links 与 pip 一起使用的替代方法是什么

    我正在使用Python 2 7 我在尝试着pip install一个仓库 在内部 github 上 依赖于另一个仓库 也在内部 github 上 我尝试了几种选择 但有效的一种是这样的 env abc cat requirements tx
  • 通过物理鱼眼相机和 Open CV 的虚拟 PTZ 相机

    我正在尝试基于物理鱼眼相机 180 度 FOV 的数据来实现虚拟平移倾斜变焦 PTZ 相机 在我看来 我必须实现下一个序列 获取鱼眼传感器矩阵坐标中鱼眼圆心的坐标 获取同一坐标系下鱼眼圆的半径 生成一个球体方程 该方程与平面相机传感器上的平
  • 使用 Swift PFIdResultBlock 错误解析云

    PFCloud callFunctionInBackground hello withParameters test tester response AnyObject error NSError gt Void in if error n
  • 活动启动延迟(startActivity)错误

    最近 我收到用户发来的信息 称我的闹钟应用程序没有在该响的时候响 最后 其中一位用户向我发送了来自构建日志的信息 这真的很奇怪 74 4 25 0 StartAlarm received 75 5 22 15 AlarmOnScreen c
  • 绑定字符串格式数字逗号且无小数位

    好吧 这是一个简单的问题 但我非常感谢你的帮助 因为我已经花了一个小时试图让它工作 如何更改以下内容以去掉小数位并仅显示整数 Binding Binding ANLA StringFormat n 我知道格式是这样的 0 0 0 但我无法让
  • static_cast 从 Derived* 到 void* 到 Base*

    我想将一个指向派生类成员的指针转换为void 并从那里指向基类的指针 如下例所示 include
  • 生成随机字母字符串的有效方法?

    我想要一个随机字母表中所有字符的字符串 现在 我创建一个包含 26 个字符的可变数组 使用 ExchangeObjectAtIndex 方法对它们进行打乱 然后将每个字符添加到我返回的字符串中 必须有更好的方法来做到这一点 这是我的代码 N
  • 重写 hashcode 方法时的 HashMap 性能

    In a HashMap 如果我将自定义对象作为键 如果我重写会发生什么hashCode 方法并实现它以将值传递为 1 会有任何性能影响吗 如果我改变hashCode 使用返回随机值的方法Math random 功能 性能会发生什么变化 添
  • 如何在 Python 中将 MP3 转换为 WAV

    如果我有 MP3 文件 如何将其转换为 WAV 文件 最好使用纯Python方法 我维护一个开源库 pydub http pydub com 这可以帮助您解决这个问题 from pydub import AudioSegment sound
  • C++中将一个类对象分配给另一个类对象

    我想在 C 中将一个类对象分配给另一个类对象 Ex 有一个类别为 狗 另一个类别为 猫 为每个 d1 c1 创建一个实例 不想使用任何STL 我想在我的代码中使用这个语句 d1 c1 Program class dog char dc fl