Witam,
mam do napisania dwa operatory, które będą działać z mainem którego nie mogę modyfikować.
#include <vector>
#include <iostream>
operator +(const std::vector<double> &v1, const std::vector<double> &v2)
{
std::vector<double> pom;
for (int i=0; i<v1.size(); i++)
{
pom.push_back(v1[i]);
}
for (int i=0; i<v1.size(); i++)
{
pom.push_back(v2[i]);
}
return pom;
}
operator += (std::vector<double> &v1, const std::vector<double> &v2)
{
for (int i=v1.size(); i<v1.size()+v2.size(); i++)
{
v1.push_back(v1[i]);
}
return v1;
}
int main() {
std::vector<double> vector = std::vector<double> {6.7, -12.3} + std::vector<double> {-2.7, 19};
(vector += std::vector<double> {0.5, -2.7}) += std::vector<double> {19};
for (double element: vector) {
std::cout << element << " "; }
std::cout << std::endl; }
Wykrzacza mi się na wektorze pom nie wiedzieć czemu trakruje go jako int...
||=== Build file: "no target" in "no project" (compiler: unknown) ===|
OPERATORY.cpp||In function 'int operator+(const std::vector<double>&, const std::vector<double>&)':|
OPERATORY\ |21|error: cannot convert 'std::vector<double>' to 'int' in return|
\OPERATORY\p||In function 'int operator+=(std::vector<double>&, const std::vector<double>&)':|
OPERATORY\ p|42|error: cannot convert 'std::vector<double>' to 'int' in return|
OPERATORY\1 Ap||In function 'int main()':|
OPERATORY\pp|57|error: conversion from 'int' to non-scalar type 'std::vector<double>' requested|
OPERATORY\1cpp|60|error: no match for 'operator+=' (operand types are 'int' and 'std::vector<double>')|
OPERATORY\1cpp|24|note: candidate: int operator+=(std::vector<double>&, const std::vector<double>&)|
OPERATORY\1pp|24|note: no known conversion for argument 1 from 'int' to 'std::vector<double>&'|
||=== Build failed: 4 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
- screenshot-20200102170759.png (33 KB) - ściągnięć: 69