gpt4 book ai didi

c++ - 2种模板类型之间的转换

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

我有一段代码用于一个类(这是一个片段):

template<typename T>
class Pos2 {
public:
T x, y;

Pos2() : x(0), y(0) {};
Pos2(T xy) : x(xy), y(xy) {};
Pos2(T x, T y) : x(x), y(y) {};

};

现在,我还有 2 个类型定义:

typedef Pos2<pos_scalar> Pos;
typedef Pos2<size_scalar> Size;

一切都按预期工作,但是当我这样做时:

Pos p(5.5, 6.5);
Size s(3, 8);
p = s;

我收到这个错误:

error: conversion from ‘Size {aka Pos2<short int>}’ to non-scalar type ‘Pos’ requested

有道理,但我想知道如何解决它=P

最佳答案

添加构造函数

template <typename Type2> Pos2(const Pos2<Type2> &other)
{ x = other.x; y = other.y; }

关于c++ - 2种模板类型之间的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21212113/

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