Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

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

Ответ
 
Опции темы
Старый 21.06.2018, 16:20   #1
2Lui
Форумчанин
 
Аватар для 2Lui
 
Регистрация: 14.03.2017
Сообщений: 68
Репутация: 0
По умолчанию Help ошибки компиляции.

Цитата:
Код:

#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
#include "Client.h"
#include "IComparable.h"

template<class AnyType>
IComparable<AnyType> * getMaxBalance(IComparable<AnyType> * * client, int ClientCount)
{
	IComparable* max = client[0];
	for (int i = 1; i < ClientCount; i++)
	{
		if (max->compareTo(client[i])<0)
		{
			max = client[i];
		}
	}
	return max;
}

int main()
{

	setlocale(LC_ALL, "Russian");
	Client** objClient = new Client*[3];
	objClient[0] = new Client("Alex", "Alexandorivch","Mitrovka","7946513487256479", 19910.0);
	objClient[1] = new Client("Michal", "Michalovich","Migie","451237894561467", 1998.0);
	objClient[2] = new Client("Ivan", "Ivanovich","Popov","1234678910489243", 1990.0);

	Client* maxClient = (Client*)(getMaxBalance<Client>((IComparable<Client>* *)objClient, 3));

	printf("Max= %s\n", maxClient->toString().data());

	system("pause");
    return 0;
}

Ошибки
Цитата:
Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка C2440 return: невозможно преобразовать "IComparable *" в "IComparable<Client> *" MainProject c:\users\admin\source\repos\mainpro ject\mainproject\mainproject.cpp 19
Ошибка C2440 инициализация: невозможно преобразовать "IComparable<Client> *" в "IComparable *" MainProject c:\users\admin\source\repos\mainpro ject\mainproject\mainproject.cpp 11
Ошибка C2662 int IComparable<MyType>::compareTo(MyTy pe *): невозможно преобразовать указатель "this" из "IComparable" в "IComparable<MyType> &" MainProject c:\users\admin\source\repos\mainpro ject\mainproject\mainproject.cpp 14
Ошибка C2440 =: невозможно преобразовать "IComparable<Client> *" в "IComparable *" MainProject c:\users\admin\source\repos\mainpro ject\mainproject\mainproject.cpp 16
Ошибка C2955 "IComparable": для использования класс шаблон требуется список аргументов шаблон MainProject c:\users\admin\source\repos\mainpro ject\mainproject\mainproject.cpp 11
Как не кручу не могу понять почему не работает, делал похожий проект все работало.
2Lui вне форума   Ответить с цитированием
Старый 21.06.2018, 16:38   #2
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 12,491
Репутация: 2073
По умолчанию

Код:

IComparable* max

Шаблонный параметр где?
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x вне форума   Ответить с цитированием
Старый 21.06.2018, 16:51   #3
2Lui
Форумчанин
 
Аватар для 2Lui
 
Регистрация: 14.03.2017
Сообщений: 68
Репутация: 0
По умолчанию

С шаблонами у меня не очень.

Код:

IComparable<AnyType>* max = client[0];
	for (int i = 1; i < ClientCount; i++)
	{
		if (max->compareTo(client[i])<0)
		{
			max = client[i];
		}
	}
	return max;
}

Снова ошибка
Цитата:
Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка C2664 "int IComparable<Client>::compareTo(MyTy pe *)": невозможно преобразовать аргумент 1 из "IComparable<Client> *" в "Client *" MainProject c:\users\admin\source\repos\mainpro ject\mainproject\mainproject.cpp 14
2Lui вне форума   Ответить с цитированием
Старый 21.06.2018, 16:55   #4
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 12,491
Репутация: 2073
По умолчанию

Ну раз вы делаете все на интерфейсах, то зачем compareTo требует в параметр Client, а не IComparable<Client>?
И вообще раз ошибка в вызове compareTo, то почему вы ее не показываете?
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x вне форума   Ответить с цитированием
Старый 21.06.2018, 17:04   #5
2Lui
Форумчанин
 
Аватар для 2Lui
 
Регистрация: 14.03.2017
Сообщений: 68
Репутация: 0
По умолчанию

Код:

int Client::compareTo(Client * obj)
{
	if (balance == obj->balance)
	{
		return 0;
	}
	if (balance > obj->balance)
	{
		return 1;
	}
	return -1;
}

Код:

#pragma once
template <class MyType>
__interface IComparable
{
	int compareTo(MyType* obj);//Повертає 0-рівні, >0 -якщо перше більше,  0< перше менше
};

у меня два класа Client и GoldenClient .

А вот задание может я его не правильно понимаю?
Особенно это
Цитата:
На основі вказаних класів випадковим чином створити 10 об’єктів і знайти ім’я клієнта, який може зняти найбільшу кількість коштів
Цитата:
Розробити клас Client, використовуючи вказані інтерфейси і містить вказані поля і методи.
Інтерфейси:
IComparable (метод compareTo);
INumerable (метод double toNumber() – метод, що повертає дійсне значення (у випадку класу Client - повертає поточний баланс);
поля:
ПІБ;
адреса;
баланс;
методи:
поповнення балансу на вказазу суму;
зняття вказаної суми (якщо грошей не вистачає – генерувати виключну ситуацію);
toString;
На основі цього класу створити клас GoldenClient, у якому додано поле loanLimit і можна знімати кошти у межах вказаного ліміту в борг (перевиздначити метод зняття).
А також додано :
метод нарахування 20% на кредитні кошти (у випадку, коли баланс є від’ємним);
метод визначення максимальної суми грошей, яка може бути знята (враховуючи кредитні кошти).
На основі вказаних класів випадковим чином створити 10 об’єктів і знайти ім’я клієнта, який може зняти найбільшу кількість коштів.

Последний раз редактировалось 2Lui; 21.06.2018 в 17:15.
2Lui вне форума   Ответить с цитированием
Старый 21.06.2018, 18:28   #6
2Lui
Форумчанин
 
Аватар для 2Lui
 
Регистрация: 14.03.2017
Сообщений: 68
Репутация: 0
По умолчанию

Не получилось через шаблоны сделать у меня сделать просто void* obj .И все заработало но этот метод не очень безопасен.
2Lui вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибки компиляции allbazer C# (си шарп) 5 24.05.2018 15:00
ошибки при компиляции с++ *Fantom* Помощь студентам 1 29.10.2013 08:37
ошибки при компиляции Lers Assembler 0 05.06.2013 21:25
ошибки компиляции KOLANICH Общие вопросы C/C++ 0 25.02.2012 17:14
Ошибки при компиляции vader2 Общие вопросы Delphi 11 29.09.2010 16:33


06:40.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru