gpt4 book ai didi

c++ - 如何修复以下代码中的转换错误?

转载 作者:行者123 更新时间:2023-11-27 23:23:29 26 4
gpt4 key购买 nike

我有一个模板类:

template<class T>
class A{
T a, b;
public:
A(A<T> const & o) : a(o.a), b(o.b){}
A(T const & _a, T const & _b) : a(_a), b(_b){}
};

A<double> d(1.2, 4.5);
A<float> f = d; //error: conversion from A<double> to non-scalar type A<float> requested

如何为我的类定义一个转换函数?我的编译器是 g++ 4.7.0

最佳答案

你可以制作一个模板构造函数:

template<class T>
class A{
T a, b;
public:

template<class U>
A(A<U> const & rhs) : a(rhs.a), b(rhs.b) {}

A(T const & _a, T const & _b) : a(_a), b(_b){}
};

然后你应该能够转换任何类A<U>任何类(class)A<T>只要U可转换为 T .

关于c++ - 如何修复以下代码中的转换错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11166777/

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