使用运算符重载将两个向量相加

由Artagnan

我有一个Vectors具有私有动态数组的类。我要做的就是添加两个Vectors对象,例如A = A + B,但是程序不断崩溃。

这是我班的声明:

class Vectors
    {
    private:
        int* vector;
    public:
        Vectors(int);
        Vectors(Vectors&);
        ~Vectors();

        Vectors operator+(Vectors&);

    };

这是我的实现:

#include "Vectors.h"
#include "iostream"
using namespace std;

Vectors::Vectors(int value)
{
    this->vector = new int[3];
    for (auto i = 0; i < 3; i++)
    {
        vector[i] = 3;
    }
}

Vectors::Vectors(Vectorsy& copy)
{
    this->vector = new int[3];
    for (auto i = 0; i < 3; i++)
    {
        vector[i] = copy.vector[i];
    }
}

Vectors::~Vectors()
{
    delete[] vector;
}

Vectors Vectors::operator+(Vectors& obj) // There is sth wrong here.
{
    for (auto i = 0; i < 3; i++)
        this->vector[i] += obj.vector[i];

    return *this;
}

这是我得到的错误:

在此处输入图片说明

匿名邮件

我相信您需要一个operator=功能。您尚未实现它,因此编译器将编写一个默认的代码,该默认代码执行错误的操作(由于该类具有指针)。两次删除相同的内存时,很可能发生崩溃。

请参阅什么是三法则?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在 Haskell 中不使用 + 运算符将两个数字相加

来自分类Dev

如何区分这两个运算符的重载?

来自分类Dev

运算符重载:无法添加两个指针

来自分类Dev

用两个类重载运算符 +=

来自分类Dev

numpy运算符比较两个向量

来自分类Dev

C ++运算符使用向量重载<<

来自分类Dev

使用指针将两个4向量与sse相加

来自分类Dev

如何使用位操作在C中不使用+运算符就将两个数相加

来自分类Dev

使用运算符重载对两个数字进行加减运算

来自分类Dev

使用两个参数绑定运算符(= <<)

来自分类Dev

使用$运算符将两个括号链接在一起

来自分类Dev

使用“或”运算符将值与两个值进行比较

来自分类Dev

如何在C ++中重载两个不同的I / O运算符

来自分类Dev

为两个具有循环依赖关系的类定义重载的转换运算符

来自分类Dev

相同的运算符和类的两个重载函数

来自分类Dev

重载运算符以添加两个双向链表

来自分类Dev

我可以在python中执行两个以上对象的运算符重载吗?

来自分类Dev

重载加法运算符以添加两个多项式

来自分类Dev

如何重载“==”运算符以确定两个 ID 号是否相同?

来自分类Dev

如何在两个不同的类之间重载“==”运算符?

来自分类Dev

使用重载将两个矩阵相加的最佳方法是什么?

来自分类Dev

如何在C中使用位操作在不使用+运算符的情况下相加两个数字

来自分类Dev

C ++向量运算符重载

来自分类Dev

重载 = 自制向量类的运算符

来自分类Dev

无限循环,同时使用按位运算将两个整数相加?

来自分类Dev

无限循环,同时使用按位运算将两个整数相加?

来自分类Dev

对二进制表达式无效的操作数(当同时使用两个重载运算符时)

来自分类Dev

使用+或-运算符在两个CGPoint上进行算术运算

来自分类Dev

是否可以在两个if..else语句之间使用OR运算符或AND运算符?

Related 相关文章

  1. 1

    在 Haskell 中不使用 + 运算符将两个数字相加

  2. 2

    如何区分这两个运算符的重载?

  3. 3

    运算符重载:无法添加两个指针

  4. 4

    用两个类重载运算符 +=

  5. 5

    numpy运算符比较两个向量

  6. 6

    C ++运算符使用向量重载<<

  7. 7

    使用指针将两个4向量与sse相加

  8. 8

    如何使用位操作在C中不使用+运算符就将两个数相加

  9. 9

    使用运算符重载对两个数字进行加减运算

  10. 10

    使用两个参数绑定运算符(= <<)

  11. 11

    使用$运算符将两个括号链接在一起

  12. 12

    使用“或”运算符将值与两个值进行比较

  13. 13

    如何在C ++中重载两个不同的I / O运算符

  14. 14

    为两个具有循环依赖关系的类定义重载的转换运算符

  15. 15

    相同的运算符和类的两个重载函数

  16. 16

    重载运算符以添加两个双向链表

  17. 17

    我可以在python中执行两个以上对象的运算符重载吗?

  18. 18

    重载加法运算符以添加两个多项式

  19. 19

    如何重载“==”运算符以确定两个 ID 号是否相同?

  20. 20

    如何在两个不同的类之间重载“==”运算符?

  21. 21

    使用重载将两个矩阵相加的最佳方法是什么?

  22. 22

    如何在C中使用位操作在不使用+运算符的情况下相加两个数字

  23. 23

    C ++向量运算符重载

  24. 24

    重载 = 自制向量类的运算符

  25. 25

    无限循环,同时使用按位运算将两个整数相加?

  26. 26

    无限循环,同时使用按位运算将两个整数相加?

  27. 27

    对二进制表达式无效的操作数(当同时使用两个重载运算符时)

  28. 28

    使用+或-运算符在两个CGPoint上进行算术运算

  29. 29

    是否可以在两个if..else语句之间使用OR运算符或AND运算符?

热门标签

归档