gpt4 book ai didi

c++ - 需要帮助修复奇怪的模板错误

转载 作者:太空宇宙 更新时间:2023-11-04 14:11:08 24 4
gpt4 key购买 nike

当我尝试编译我的项目时,出现 C2440 错误,提示 'initializing' : cannot convert from 'vector<component_count>' to 'vector_2D'. C2440 的 MSDN 文档说 The compiler cannot cast from 'type1' to 'type2'.我有一个基类 vector:

template <unsigned int component_count>
class vector {...}

和一个派生类,vector_2D:

class vector_2D : public vector<2>

我的基类定义了默认构造函数和复制构造函数,以及运算符重载。给我错误的代码是:

vector_2D character_position = pen_position + vector_2D(offset_x, offset_y);

pen_position 早先创建为

vector_2D pen_position(string_position);

我似乎无法修复我的错误。任何人都可以指出出了什么问题和/或如何解决它吗?

最佳答案

vector operator + (const vector& a_vector) const

是问题所在。您要返回一个基数,然后尝试将其分配给派生数。

最简单的解决方法是提供重载

vector_2D operator + (const vector_2D& a_vector) const

关于c++ - 需要帮助修复奇怪的模板错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14227464/

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