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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.03.2012, 22:18   #21
Karmadon
Пользователь
 
Аватар для Karmadon
 
Регистрация: 28.02.2012
Сообщений: 46
Восклицание

Цитата:
Сообщение от krivou Посмотреть сообщение
я понял уже что проблема здесь а как решыть ее не как не могу докумекать (
Увы проблема не в этом, а в том, что Вы читать не желаете (без обид).
Прочитав всего несколько глав из книг по С++ для начинающих - решилось бы практически все указанное в данном посте.
"THE ONLY WAY TO GET SMARTER IS BY PLAYING A SMARTER OPPONENT." -- Fundamentals of Chess 1883
Karmadon вне форума Ответить с цитированием
Старый 21.09.2015, 08:46   #22
Discriptor
Пользователь
 
Регистрация: 21.09.2015
Сообщений: 13
По умолчанию

Аналогичная ошибка.
Помогите исправить.
Код:
void Group::PutKarta(int i, Karta& map) \\функция занесения обьекта класса в массив

{

	if (i>= 0 && i < 10) s_arr[i] = map; \\ругается на эту строку

			
}
error C2679: binary '=' : no operator defined which takes a right-hand operand of type 'class Karta' (or there is no acceptable conversion)
Error executing cl.exe.
Discriptor вне форума Ответить с цитированием
Старый 21.09.2015, 09:05   #23
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Не аналогичная.

s_arr это что?



Код:
Group::PutKarta
чот названия стремные
делали б уже тогда
Код:
Grupa::PolojitKartu
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 21.09.2015, 09:54   #24
Discriptor
Пользователь
 
Регистрация: 21.09.2015
Сообщений: 13
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Не аналогичная.

s_arr это что?



Код:
Group::PutKarta
чот названия стремные
делали б уже тогда
Код:
Grupa::PolojitKartu
s_arr это массив
укорочено size_array (размер_массив) - че стремного?))
Discriptor вне форума Ответить с цитированием
Старый 21.09.2015, 10:01   #25
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Я про PutKarta. Примерно как "послайсите мне три писа сыра плиз".

Про массив я спрашивал его тип.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 21.09.2015, 10:40   #26
Discriptor
Пользователь
 
Регистрация: 21.09.2015
Сообщений: 13
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Я про PutKarta. Примерно как "послайсите мне три писа сыра плиз".

Про массив я спрашивал его тип.

Ну уж извините, это название придуманное преподами с универа, задания по лабе.

Во общем есть динамический массив обьектов, обьекты типа "Кarta". обьявлен класс, конструкторы, все как надо, все уже проверенно, все работает.

у меня вопрос в другом, вот как звучит задание с методички:
Напишите функции void PutKarta(int i, Person& map); и
Karta& Getkarta(int i);, первая функция заносит объект map
типа Karta в i-й элемент массива, вторая функция возвращает
объект типа Karta из i-го элемента массива.

Код:
void Group::PutKarta(int i, Karta& map)

{

	if (i>= 0 && i < 10) s_arr[i] = map; здесь ошибка error C2679: binary '=' : no operator defined which takes a right-hand operand of type 'class Karta' (or there is no acceptable conversion)

			
}
Если функция PutKarta(int i, Karta& map) правильная как исправить ошибку?
Помогите написать вторую функцию (извлечение обьекта и i-го элемента массива.

Последний раз редактировалось Discriptor; 21.09.2015 в 10:47.
Discriptor вне форума Ответить с цитированием
Старый 21.09.2015, 11:13   #27
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Как объявление s_arr выглядит?

Цитата:
Напишите функции void PutKarta(int i, Person& map)
Цитата:
PutKarta(int i, Karta& map)
Person это ж не Karta
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 21.09.2015, 11:34   #28
Discriptor
Пользователь
 
Регистрация: 21.09.2015
Сообщений: 13
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Как объявление s_arr выглядит?



Person это ж не Karta
блин это троллинг, реально))

да, везде вместо person у меня karta (вариант у меня такой, обьект karta а не person)



Задания из методички:
4. Определим объект Group, который будет содержать ди-
намический массив объектов Person. Создайте два файла group.h
и group.cpp и включите их в проект.
5. В файле group.h определите с помощью ключевого слова
class объект Group.
Данные объекта:
размер массива (целый тип)
указатель на массив (тип Person*).
Пусть данные имеют закрытый уровень доступа (private).
6. Опишите конструктор объекта с одним аргументом —
размер массива (целый тип) и деструктор объекта.
7. Откройте файл group.cpp. С помощью директивы #include
включите необходимые заголовочные файлы.
8. Определите конструктор объекта Group. В теле конструк-
тора проинициализируйте данные объекта, т.е. проинициализи-
руйте размер массива значением аргумента конструктора и выде-
лите динамическую память под массив с помощью строки кода:
указатель на массив = new Person[размер массива].
9. В деструкторе объекта освободите память, занимаемую
массивом, с помощью строки кода
delete [] указатель на массив.
Таким образом, мы создали объект Group, который содер-
жит массив объектов Person.
10. Определим открытые (public) методы для объекта
Group. Напишите функцию void Group::Print(), которая выводит
в цикле for все записи массива на экран. В теле цикла примените
ранее написанную функцию Print() для объекта Person.
11. Напишите функцию int Group::Size(), которая возвраща-
ет размер массива.
12. Напишите функции void PutPerson(int i, Person& man); и
Person& GetPerson(int i);, первая функция заносит объект man
типа Person в i-й элемент массива, вторая функция возвращает
объект типа Person из i-го элемента массива.

Застрял на 12-м задании

Вот мои файлы лабораторной:

Файл Karta.h
Код:
class Karta //

{ 

public: //

	Karta(char*, int, char*); // 
	Karta(); //
	void Print(void); //
	void Input(void); //

private: //

	//
	char type[30];
	int scale;
	char sphere[20];
	
};

Файл Karta.cpp
Код:
#include <stdlib.h>
#include <string.h>
#include <iostream.h>
#include "Karta.h"
#include "Group.h"

Karta::Karta() //
{}



Karta::Karta(char *type, int scale, char *sphere) //

{

strcpy(Karta::type, type); //
Karta::scale=scale; //
strcpy(Karta::sphere, sphere);

}

	
void Karta::Print(void)

{
	cout << type << " " << scale << " " << sphere << endl; //
}


void Karta::Input(void)

{
	cout << "Vvedite tip, masshtab i polusharie karti cherez probel i nazhmite  Enter" << endl;
	cin >> type >> scale >> sphere;
}

Файл Group.h
Код:
class Group

{

public:

	Group(int s_arr[10]);
	~Group(void);
	void Print();
	int Size();
	void PutKarta(int i, Karta& map);


private:

	int s_arr[10];
	Karta* p_array;

};


Файл Group.cpp
Код:
#include <stdlib.h>
#include <string.h>
#include <iostream.h>
#include "Karta.h"
#include "Group.h"


Group::Group(int s_arr[])

{

Group::s_arr[10];
p_array = new Karta[10];

}

Group::~Group(void)

{

	delete [] p_array;

}

void Group::Print()

{

	for (int i = 0; i < 10; i++)

	{
		s_arr[i] = i;
		cout << s_arr[i] << endl;

	}

}

	
int Group::Size()

{
	return s_arr[10];

}


void Group::PutKarta(int i, Karta& map)

{

	if (i>= 0 && i < 10);
		
	
		s_arr[i] = map; \\ ошибка error C2679

}

Ошибка: error C2679: binary '=' : no operator defined which takes a right-hand operand of type 'class Karta' (or there is no acceptable conversion)

правильная ли первая функция и как написать вторую функцию (по извлечению обьекта из массива)?

Последний раз редактировалось Discriptor; 21.09.2015 в 11:38.
Discriptor вне форума Ответить с цитированием
Старый 21.09.2015, 11:38   #29
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну дык и что вы хотите если у вас
Цитата:
Код:
 int s_arr[10];
а вы туда какую-то карту запихнуть пытаетесь?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 21.09.2015, 12:01   #30
Discriptor
Пользователь
 
Регистрация: 21.09.2015
Сообщений: 13
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Ну дык и что вы хотите если у васа вы туда какую-то карту запихнуть пытаетесь?
ааа, догнал!!!

вместо размера массива s_arr надо указатель на массив p_array использовать

щас скомпилилось без ошибок

Alex11223, Спасибо огромное!!! отдуши

Последний раз редактировалось Discriptor; 21.09.2015 в 12:12.
Discriptor вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В приложении Исчезают файлы Binary V.G.Ch Microsoft Office Excel 1 27.02.2012 17:33
Program binary formats f.hump Gamedev - cоздание игр: Unity, OpenGL, DirectX 2 18.01.2012 11:46
Не могу понять в чем дело! error c2679 Акунёк Общие вопросы C/C++ 3 31.01.2011 17:56
BST - Binary Search Tree Swool Общие вопросы C/C++ 1 15.10.2009 17:03