Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
123er4
0 / 0 / 0
Регистрация: 10.06.2010
Сообщений: 5
#1

Прегерузка оператора умножения. - C++

13.06.2010, 17:05. Просмотров 900. Ответов 4
Метки нет (Все метки)

Есть код, нужно дописать перегрузку умножения. В консоле должни выводится числа 1, 3, 6...27. Помогите плз.

Код
#include <iostream>
#include <fstream>
#include <conio.h>


using namespace std;
class CMyArray
{
	int* arr;
	int size;

public:
	CMyArray(int);
	~CMyArray(void);

	/////Перегрузка умножения
	CMyArray operator*(const CMyArray&);	
	int getElement(int);
	int getSize();

	private:
	void setDefaultParam(void);
};

class ArrayIndexError{};

CMyArray::CMyArray(int size)
{
	this->size = size;
	this->arr = new int[this->size];
	setDefaultParam();
}

CMyArray CMyArray::operator *(const CMyArray &obj)
{
		
}

CMyArray::~CMyArray(void)
{
	delete[] this->arr;
}
int CMyArray::getElement(int index)
{
	if((index >= 0) && (index < size))
	return arr[index];
	else throw (ArrayIndexError());
}
int CMyArray::getSize ()
{
	return size;
}
void CMyArray::setDefaultParam (void)
{
	for(int i=0;i<size;i++)
		arr[i] = i;
}
int main()
{
	CMyArray ar(10);
	ar = ar*3;
	for (int i = 0;i < ar.getSize(); i++)
		cout << ar.getElement(i) << " ";
	cout << endl;
	_getch();
	return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.06.2010, 17:05     Прегерузка оператора умножения.
Посмотрите здесь:

Написать рекурсивную функцию которая принимает два аргумента и перемножает их между собой, но без оператора умножения C++
C++ Перегрузка оператора умножения вектора на число
Таблица умножения C++
C++ Таблица умножения
Перегрузка оператора умножения числа на матрицу C++
Таблица умножения C++
Табличка умножения C++
Перегрузка оператора умножения в шаблоне класса вектора (Visual Studio 2013) C++
C++ Таблица умножения
Таблица умножения С++ C++
Перегрузка оператора умножения для матрицы C++
Перегрузка оператора умножения C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Crudelis
Шаровик затейник
669 / 411 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
13.06.2010, 17:14     Прегерузка оператора умножения. #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
CMyArray CMyArray::operator *(const CMyArray &obj)
{
if(arr)
{
delete []arr;
arr=new int [size];
}
for(int i=0;i<size;i++)
                arr[i]* = obj.arr[i];
return *this;
                
}
Да и ещё одно замечание, я вижу вы везде используете this, он нигде в вашем коде не нужен, ни в конструкторе, ни в перегрузке, так как вы работаете с одним классом, this используется если вы в конструкторе передаете переменную того же имени, вот пример:

C++
1
2
3
4
5
6
7
8
9
10
11
12
class My
{
int n;
int arr[50];
public:
My(int n, int arr[50])
{
this->n=50;
this->arr[0]={0};
}
 
}
в этом примере нужен this, ниже пример где он не нужен, обратите внимание класс такой же
C++
1
2
3
4
5
6
7
8
9
10
11
12
class My
{
int n;
int arr[50];
public:
My(int a, int aq[50])
{
n=a;
arr[0]=aq[0];
}
 
}
123er4
0 / 0 / 0
Регистрация: 10.06.2010
Сообщений: 5
13.06.2010, 17:22  [ТС]     Прегерузка оператора умножения. #3
Цитата Сообщение от Crudelis Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
CMyArray CMyArray::operator *(const CMyArray &obj)
{
if(arr)
{
delete []arr;
arr=new int [size];
}
for(int i=0;i<size;i++)
                arr[i]* = obj.arr[i];
return *this;
                
}
Да и ещё одно замечание, я вижу вы везде используете this, он нигде в вашем коде не нужен, ни в конструкторе, ни в перегрузке, так как вы работаете с одним классом, this используется если вы в конструкторе передаете переменную того же имени, вот пример:

C++
1
2
3
4
5
6
7
8
9
10
11
12
class My
{
int n;
int arr[50];
public:
My(int n, int arr[50])
{
this->n=50;
this->arr[0]={0};
}
 
}
в этом примере нужен this, ниже пример где он не нужен, обратите внимание класс такой же
C++
1
2
3
4
5
6
7
8
9
10
11
12
class My
{
int n;
int arr[50];
public:
My(int a, int aq[50])
{
n=a;
arr[0]=aq[0];
}
 
}

да вы правы, но не я составлял условие))

p.s Чет у меня вместо нормальныз значений мусор получается.(
Crudelis
Шаровик затейник
669 / 411 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
13.06.2010, 17:23     Прегерузка оператора умножения. #4
Цитата Сообщение от 123er4 Посмотреть сообщение
да вы правы, но не я составлял условие))
тогда надо будет переделывать
123er4
0 / 0 / 0
Регистрация: 10.06.2010
Сообщений: 5
13.06.2010, 17:40  [ТС]     Прегерузка оператора умножения. #5
Цитата Сообщение от Crudelis Посмотреть сообщение
тогда надо будет переделывать
я думаю немного можно)
Yandex
Объявления
13.06.2010, 17:40     Прегерузка оператора умножения.
Ответ Создать тему
Опции темы

Текущее время: 11:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru