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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2018, 11:14   #1
Liza256
 
Регистрация: 19.04.2018
Сообщений: 6
Вопрос [C++] Errors

В чем проблема? Как исправить? Проблемные места отвечены стрелками.

Условие:
Создать класс для хранения календарных дат. Перегрузить операцию « – » для нахождения разности дат и операции сравнения.

Error 1 error C3867: 'Data::Koldney': function call missing argument list; use '&Data::Koldney' to create a pointer to member e:\Pg\1\zadacha 1\zadacha 1\zadacha 1.cpp 95 1 Zadacha 1

Error 2 error C2296: '-' : illegal, left operand has type 'int (__thiscall Data::* )(void)' e:\Pg\1\zadacha 1\zadacha 1\zadacha 1.cpp 95 1 Zadacha 1

Error 3 error C2297: '-' : illegal, right operand has type 'int (__thiscall Data::* )(void)' e:\Pg\1\zadacha 1\zadacha 1\zadacha 1.cpp 95 1 Zadacha 1

Код:
 


#include "stdafx.h"
#include <iostream>
#include <cstdlib>
using namespace std;

const int MonD[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; 

class Data {
private:

	int day, month, year;

public:
	Data(int d, int m, int y){
		SetAll(d, m, y);
	}

	void SetAll(int d, int m, int y){//corr проверка
		day = d;
		month = m;
		year = y;

	}

	int Koldney(){      // <---------------------- ?
		int p = 0, s = 0, vYear=0;
		for (int i = 1; i < month; i++){
			p += MonD[i];
		}

		for (int i = 0; i <= year; i += 4){
			if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))
			vYear++;
		};

		s = day + p + (year * 365)+vYear;
		return s;
	}

	friend ostream& operator << (ostream& os, const Data& data); 
	friend int operator - (Data &X, Data &Y);

};

std::ostream& operator << (std::ostream& os, const Data& data)   //12.02.2013
{
	os << data.day << ".";
	if (data.month < 10){
		cout << "0";
	}
	os << data.month << "." << data.year << std::endl;
	for (int i = 0; i < 35; i++){
		os << "-";
	}
	os << std::endl;
	return os;
}     

int operator - (Data &X, Data &Y){              // <---------------------- ?        

	int Otv;
	Otv = abs((X.Koldney) - (Y.Koldney));
	return Otv;
}


int main(){

	Data denR(7, 8, 1999);
	Data denX(12, 12, 2012);

	cout << denX;
	cout << denR;

	cout <<  denX - denR;

	return 0;
}
Liza256 вне форума Ответить с цитированием
Старый 27.05.2018, 11:23   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Код:
Otv = abs((X.Koldney) - (Y.Koldney));
Вы не знаете как функцию вызывают? Где ()?
p51x вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
1 transfer item(s) contain syntax errors vaan.sk C++ Builder 4 17.11.2022 09:21
Unreal ошибка Map Check Errors Dimidrolbel Gamedev - cоздание игр: Unity, OpenGL, DirectX 5 31.01.2017 09:13
php errors in denver sem_1989 PHP 1 26.08.2011 23:08
Joomla_1.6.3-Stable-Full_Package.zip на Reg.ru errors! ArtGrek PHP 2 27.05.2011 10:00
NET_QueuePacket и NET_SendPacket ERRORS funqa Свободное общение 3 12.02.2010 17:08