Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2015, 18:35   #1
Sterben
Форумчанин
 
Аватар для Sterben
 
Регистрация: 01.03.2015
Сообщений: 118
По умолчанию перегрузка операции присвоения (С++)

Код:
#include "stdafx.h"
#include <iostream>
#include <string>
#include <cstring>

#define n 1 
using namespace std;
class student {
private:
	string name;
	int gryppa;
	int ball[n];
public:
	student() {
		gryppa = 0;
		for (int i = 0; i < n; i++)
			ball[i] = 0;
	}
	friend class vector;
	friend ostream &operator << (ostream & ost, student &st);
	friend istream &operator >> (istream &ist, student st);
	student &operator = (student &st);
};

student &student::operator=(student &st) {
	name = st.name;
	gryppa = st.gryppa;
	for (int i = 0; i < n; i++)
		ball[i] = st.ball[i];
	return *this;
}
ostream &operator << (ostream &ost, student &st) {
	ost << st.name << " " << st.gryppa << " ";
	for (int i = 0; i < n; i++)
		ost << st.ball[i];
	return ost;
}
istream &operator >> (istream &ist, student st){
	cout << "Input name of student: ";
	getline(ist, st.name);
	cout << "Input group when student study:_\b";
	ist >> st.gryppa;
	cout << "Input " << n << " marks: ";
	for (int i = 0; i < n; i++)
		ist >> st.ball[i];
	cin.ignore();
	return ist;
}

class vector {
private:
	student Date[n];
public:
	vector(int);
	vector(vector &v);
	vector &operator = (vector &v);
	friend ostream &operator << (ostream & ost, vector & v);
};
vector::vector(int i) {
	for (int k = 0; k < i;k++)
	cin >> Date[k];
}
vector &vector::operator=(vector & v) {
	for (int i = 0; i < n; i++)
		Date[i] = v.Date[i];
	return *this;
}
ostream &operator << (ostream & ost, vector & v) {
	for (int i = 0; i < n; i++)
		ost << v.Date[i] << endl;
	return ost;
}
vector::vector(vector &v)
{
	for (int i = 0; i < n; i++)
	Date[i] = v.Date[i];
}
int main() {
	cout << "Registred: \n";
	vector Info(n);
	cout << Info;
	cin.get();
	cin.get();

}
Здравствуйте,не могу разобраться с присвоением,подскажите что не так .проблема в том что при выводе 0, а должны быть имена и числа
Sterben вне форума Ответить с цитированием
Старый 11.10.2015, 20:33   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

О каком именно операторе в твоем коде идет речь? У тебя их там целых много.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.10.2015, 21:01   #3
Sterben
Форумчанин
 
Аватар для Sterben
 
Регистрация: 01.03.2015
Сообщений: 118
По умолчанию

Разобрался
Код:
friend istream &operator >> (istream &ist, student st);
не хватало & перед student
Sterben вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перегрузка операции вывода Zapt1k Помощь студентам 1 10.12.2013 21:03
Перегрузка операции + Стремящийся Общие вопросы C/C++ 13 07.05.2012 17:25
Перегрузка операции * Maygli Помощь студентам 0 25.04.2012 13:33
Перегрузка операции ввода sawyer1988 Общие вопросы C/C++ 5 22.04.2012 11:59
Перегрузка операции Evgen.O C++ Builder 0 11.12.2011 17:42