При компиляции ошибка: ссылка на неразрешенный внешний символ "class Mass __cdecl operator*(class Mass &,long)" (??D@YA?AV?$Mass@J@@AAV0@J@Z) в функции _main. lab18.3 D:\Лабараторки\lab18\lab18.3\lab18.3\Source.obj 1
#include <iostream>
#include <locale.h>
using namespace std;
template <class T>
class Mass
{
private:
long double* p;
int sizemass;
public:
Mass() {
sizemass = 1;
p = new long double[1];
p[0] = 10;
}
Mass(long x)
{
sizemass = x;
p = new long double[x];
}
Mass(long x, long double znach)
{
sizemass = x;
p = new long double[x];
for (int i = 0; i < x; i++) {
p[i] = znach;
}
}
Mass(const Mass<T>& object)
{
this->p = object.p;
this->sizemass = sizemass;
}
~Mass() {
delete[] p;
}
void out(void) {
for (int i = 0; i < sizemass; i++) {
cout << p[i];
}
}
Mass<T> operator = (T znach) {
for (int i = 0; i < sizemass; i++) {
this->p[i] = znach;
}
return *this;
}
Mass<T> operator += (T znach) {
for (int i = 0; i < this->sizemass; i++) {
this->p[i] = this->p[i] + znach;
}
return *this;
}
Mass<T> operator -= (T znach) {
for (int i = 0; i < this->sizemass; i++) {
this->p[i] = this->p[i] - znach;
}
return *this;
}
Mass<T> operator *= (T znach) {
for (int i = 0;i < this->sizemass; i++) {
this->p[i] = this->p[i] * znach;
}
return *this;
}
Mass<T> operator [] (int x) {
return this->p[x];
}
friend Mass<T> operator + (Mass<T>& object1, T znach);
friend Mass<T> operator - (Mass<T>& object1, T znach);
friend Mass<T> operator * (Mass<T>& object1, T znach);
};
template <class T>
Mass<T> operator + (Mass<T>& object1, T znach) {
Mass temp;
for (int i = 0; i < object1.sizemass; i++) {
temp.p[i] = object1.p[i] + znach;
}
return temp;
}
template <class T>
Mass<T> operator - (Mass<T>& object1, T znach) {
Mass temp;
for (int i = 0; i < object1.sizemass; i++) {
temp.p[i] = object1.p[i] - znach;
}
return temp;
}
template <class T>
Mass<T> operator * (Mass<T>& object1, T znach) {
Mass temp;
for (int i = 0; i < object1.sizemass; i++) {
temp.p[i] = object1.p[i] * znach;
}
return temp;
}
int main()
{
setlocale(LC_ALL, "");
Mass<long> v(8);
Mass<long> m(6);
m + 1;
cin.get();
return 0;
}