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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.06.2018, 15:20   #1
2Lui
Пользователь
 
Аватар для 2Lui
 
Регистрация: 14.03.2017
Сообщений: 68
По умолчанию 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, 15:38   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Код:
IComparable* max
Шаблонный параметр где?
p51x вне форума Ответить с цитированием
Старый 21.06.2018, 15:51   #3
2Lui
Пользователь
 
Аватар для 2Lui
 
Регистрация: 14.03.2017
Сообщений: 68
По умолчанию

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

Код:
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, 15:55   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

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

Код:
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 в 16:15.
2Lui вне форума Ответить с цитированием
Старый 21.06.2018, 17:28   #6
2Lui
Пользователь
 
Аватар для 2Lui
 
Регистрация: 14.03.2017
Сообщений: 68
По умолчанию

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


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


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