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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.09.2010, 16:49   #1
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию LValue required

Есть вот такой класс:
Код:
class Team
{
 public:
	int     Count;
	int     type;
	char    name[20];
	Player  Players[100];
	Coach   Coaches[2];
	Manager MainCoach;
	float   famous;
	Team()
	{
	 cout<<"Constructing Team";
	 Count  = 100;
	 type   = 1;
	 famous = 50;
	}
	Team(char sname[10])
	{
	 cout<<"Constructing"<<sname<<"\n";
	 strcpy(name,sname);
	 famous = 50;
	}
	~Team()
	{
	 Count  = 0;
	 type   = 0;
	 famous = 0;
	}
};
И вот такой код его использования:
Код:
int main()
{
 clrscr();

 Team CSKA("CSKA");

 Team Rubin("Rubin");

 CSKA.Count = 15;
 Rubin.Count = 10;

 CSKA.name ="CSKA";
 Rubin.name="Rubin";

 getch();

 clrscr();

 cout<<"First team name:"<<CSKA.name<<"\n";
 cout<<"Second team name:"<<Rubin.name<<"\n";
 getch();
 return 0;
}
Однако, в строке(а вернее в двух строках)
Код:
CSKA.name ="CSKA";
 Rubin.name="Rubin";
Выдаёт ошибку "LValue required".Что бы это значило?
_-Re@l-_ вне форума Ответить с цитированием
Старый 24.09.2010, 16:55   #2
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

нельзя оператором = присваивать с-строки. strcpy.
классы видимо юзаются тут "чтобы были". знакомы с инкапсуляцией?

пс.
Цитата:
~Team()
{
Count = 0;
type = 0;
famous = 0;
}
гениально...
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 24.09.2010, 16:56   #3
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Ну, разумеется, знаком...Но не в С++
А как будет правильно делать?
Цитата:
Код:
~Team()
{
Count = 0;
type = 0;
famous = 0;
}
гениально...
Я и не надеялся, что ты меня поймёшь...

Последний раз редактировалось _-Re@l-_; 24.09.2010 в 17:02.
_-Re@l-_ вне форума Ответить с цитированием
Старый 24.09.2010, 17:01   #4
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

Цитата:
Сообщение от _-Re@l-_ Посмотреть сообщение
Ну, разумеется, знаком...Но не в С++
А как будет правильно делать?
я тебе уже сказал, strcpy. напрямую переменным членам через объект не обращаются, используются защищенные/закрытые члены и открытые сеттеры/геттеры
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 24.09.2010, 17:03   #5
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
Код:
 strcpy(name,sname);
Вот, он у меня и так есть, но код не работает!
P.S. Забыл сказать:компилятор Borland C++ 3.1

Последний раз редактировалось _-Re@l-_; 24.09.2010 в 17:05.
_-Re@l-_ вне форума Ответить с цитированием
Старый 24.09.2010, 17:05   #6
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

Цитата:
Сообщение от _-Re@l-_ Посмотреть сообщение
Вот, он у меня и так есть, но код НЕ Р-А-Б-О-Т-А-Е-Т!
Код:
CSKA.name ="CSKA";
 Rubin.name="Rubin";
смотри на эти 2 строчки до посинения
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 24.09.2010, 17:06   #7
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

В смысле, так что ли делать?
Код:
strcpy(CSKA.name,"CSKA");
strcpy(Rubin.name,"Rubin");
_-Re@l-_ вне форума Ответить с цитированием
Старый 24.09.2010, 17:08   #8
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

Цитата:
Сообщение от _-Re@l-_ Посмотреть сообщение
В смысле, так что ли делать?
Код:
strcpy(CSKA.name,"CSKA");
strcpy(Rubin.name,"Rubin");
да. и для чего 2 раза инициализировать эти строки одним и тем же? первая инициализация в конструкторе
и поясни смысл своего деструктора. а то мож я чего не знаю

ппс. у каждого второго вижу такую запись
Team(char sname[10])

очень хочется надеяться, что вы понимаете смысл этого
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance

Последний раз редактировалось pproger; 24.09.2010 в 17:11.
pproger вне форума Ответить с цитированием
Старый 24.09.2010, 17:11   #9
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Не, понимаешь, есть переменная типа Team которая называется CSKA, а есть переменная класса Team которая называется name.В неё грузится как раз слово CSKA.
Но, конечно, можно и так:
Код:
strcpy(CSKA.name,"Central Sport Club Of Army");
strcpy(Rubin.name,"Rubin");
И тогда переменная name класса Team будет равна " Central Sport Club Of Army",а переменная типа Team будет называться CSKA....
_-Re@l-_ вне форума Ответить с цитированием
Старый 24.09.2010, 17:12   #10
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Ну, в общем всё, тему можно закрывать.
_-Re@l-_ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка array type required _alis_ Компоненты Delphi 1 31.05.2010 17:27
Ошибка " Record, object or class type required " (Запись, объектный или классический тип требовались) kta87 Помощь студентам 2 28.02.2010 10:04
Record, object or class type required @mazonk@ Помощь студентам 0 07.06.2009 13:03
Выдает ошибку Array type required! LIEN Общие вопросы Delphi 19 17.05.2009 11:08
"leading underscore required...." Stilet Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 06.06.2008 15:42