@Durilka96

Как создать глобальную функцию через оператор?

Необходимо массив x1 инвертировать(отзеркалить) с помощью оператора !, оператор должен быть реализован в глобальной функции, как лучше это сделать?
#include <stdio.h>
#include <stdlib.h>

class Dinmass {
	double *mas;
	int size;

public:



friend double operator *(Dinmass&, Dinmass&);


	void info() {
		printf("Кто\n\n");
	}
	Dinmass(int, double);

	void show() {
		for (int i = 0; i < size; i++) {
			printf("%.2lf  ", mas[i]);
		}
		printf("\n\n");
	}
	
	~Dinmass() {
		delete[]mas;
	}

};



Dinmass::Dinmass(int sizee = 10, double N = 100) {
	mas = new double[sizee];

	this->size = sizee;
	for (int i = 0; i < sizee; i++) {
		mas[i] = random(N) - random(N) / 0.8;
	}
	if (N == 0) {
		for (int i = 0; i < sizee; i++) {
			mas[i] = 0;
		}
	}
}



Dinmass double operator!(Dinmass &x1){
Здесь нужно инвертировать 
  
  }

}

int main() {
	system("chcp 1251");
	randomize();
	int size=10;
	printf("\n");
	Dinmass x;
	x.info();
	Dinmass x1(size), x2(10, 100), x3(10, 0);
	x1.show();
	x2.show();
	x3.show();
	
printf(А здесь вывести с помощью оператора ! );
	system("pause");
	return 0;
}
  • Вопрос задан
  • 64 просмотра
Пригласить эксперта
Ответы на вопрос 1
zagayevskiy
@zagayevskiy
Android developer at Yandex
Durilka96, мда, ну ты, судя по всему, вообще не понимаешь, что происходит вокруг.
У тебя утечка памяти. У тебя возвращается ссылка(double&) вместо указателя. Ты вообще должен возвращать новый Dinmass. У тебя новый массив равен старому(sic!, "вывод на экран для наглядности, что работает" не показателен). Ты должен идти одновременно с начала и с конца(это ты делаешь), но не по всему массиву, а до тех пор, пока курсор начала не станет больше либо равен курсору конца.
Ты должен присваивать результат !x в новую переменную и уже её выводить(у тебя для этого есть метод show).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы