gpt4 book ai didi

c++ - 隐式转换中的隐式参数

转载 作者:行者123 更新时间:2023-11-30 02:38:03 24 4
gpt4 key购买 nike

#include <iostream>
using namespace std;

struct From{
int i;
From(){}
};

struct By{
By(const From& f){}
};

struct To{
To(const By& b){}
};

int main() {
From f;
To to = f; // error: conversion from 'From' to non-scalar type 'To' requested
// By by = f;
// To to = by;
return 0;
}

有没有什么方法可以在不修改 ByTo 的情况下完成这项工作?而且也没有这样做:

 By by = f;
To to = by;

最佳答案

只需在 From 中提供一个用户定义的转换运算符:

struct From
{
int i;
From(){}
operator To() const
{
To to;
//fill it
return to;
}
};

关于c++ - 隐式转换中的隐式参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31162435/

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