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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2010, 15:21   #1
Sapfil
Пользователь
 
Аватар для Sapfil
 
Регистрация: 11.01.2010
Сообщений: 24
По умолчанию Небольшая оптимизация классов

Вот собсно работающий код:

Код:
struct XY
{
  int x, y;
};

class Data
{
	public:
		Data () {data.x=data.y=0;}
		XY get_data() const {return data;}
		void set_data(int in_x, int in_y) { data.x=in_x; data.y=in_y;}
		void print_data () { cout << data.x << "\t" << data.y << "\n";}
	private:
		XY data;
Как видите здесь есть 2 класса. Один в другой вложенный.

Но как бы сделать так, чтобы можно было обойтись одним классом примерно таким:

Код:
class Data
{
	public:
		Data () {x=y=0;}
		Data get_data() const { ??????? }
		void set_data(int in_x, int in_y) { x=in_x; y=in_y;}
		void print_data () { cout << x << "\t" << y << "\n";}
	private:
		int x,y;
}
Мне не понятно - что писать там где знаки вопроса. Я могу вернуть указатель на объект Data. Но мне нельзя менять сам объект, а надо просто вернуть значения в формате Data.

p/s/ не студент - просто для себя изучаю С++
Sapfil вне форума Ответить с цитированием
Старый 02.04.2010, 15:34   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Хм, а в этом действительно есть смысл? Как вы собираетесь это использовать? )
П. С.
Код:
return *this;
netrino вне форума Ответить с цитированием
Старый 02.04.2010, 15:54   #3
evgn
Разрабатываюсь....
Пользователь
 
Регистрация: 16.11.2008
Сообщений: 68
По умолчанию

Таким образом все равно не получите доступ к x и y.
Можно сделать так:
Код:
void get_data(int& rx,int& ry) { rx = x; ry = y; }
Или же сделать x и y public.
evgn вне форума Ответить с цитированием
Старый 02.04.2010, 16:12   #4
Sapfil
Пользователь
 
Аватар для Sapfil
 
Регистрация: 11.01.2010
Сообщений: 24
По умолчанию

to netrino

Вы, возможно, удивитесь... Но я просто изучаю С++ и пробую то и это. Мне не хватает практики и приходится выдумывать задания самому себе. Можно конечно использовать то, что есть на форуме (особенно темы из разряда "Помогите мне написать код. Я тупой и ленивый и по-этому не могу сам". Но в большинстве случаев задания плохо сформулированы, либо их решение элементарно.
Sapfil вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Небольшая игра Sparky Помощь студентам 5 04.12.2009 08:22
Небольшая проблемка Игорь777 Помощь студентам 1 02.05.2009 14:53
Создание классов и использование объектов классов при написании программ в среде C++. Frozen inside Помощь студентам 0 16.04.2009 23:18