Форум программистов, компьютерный форум CyberForum.ru

Ошибка получения переменной класса - C++

Восстановить пароль Регистрация
 
Nikkilla
 Аватар для Nikkilla
2 / 2 / 0
Регистрация: 24.02.2013
Сообщений: 62
10.12.2013, 14:26     Ошибка получения переменной класса #1
Есть 2 класса:

Класс 1:
Кликните здесь для просмотра всего текста
Код
#include <iostream>
#include "MyClass2.h"

class MyClass
{
public:
	MyClass2* myClass2;

	MyClass()
	{
		myClass2 = new MyClass2(*this);
	}
};


Класс 2:
Кликните здесь для просмотра всего текста
Код
#include <iostream>

class MyClass2
{
public:
	MyClass2(MyClass* mclass)
	{

	}
};


Нужно при создании класса 2 из класса 1 передать переменную класса 1 в класс 2.
Ошибка заключается в том, что визуал студия подчеркивает левую скобку от this.
При наведении пишет:
Отсутствуют экземпляры конструктора "MyClass2::MyClass2", соответствующие списку аргументов
Что я не так написал?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2013, 14:26     Ошибка получения переменной класса
Посмотрите здесь:

C++ при перезагрузке оператора для класса не получается использовать имя переменной такое же,как в описании класса
C++ Ошибка компиляции (преобразование объекта класса в объект другого класса)
Получения количества полей класса C++
C++ Область видимости переменной пользовательского класса
Получить доступ к переменной класса при наличии такого же имени переменной в функции C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Peperovich
43 / 43 / 4
Регистрация: 17.05.2011
Сообщений: 162
10.12.2013, 14:39     Ошибка получения переменной класса #2
Ну вообще *this указатель на текущий объект, как ты его передаешь в конструкторе, если он не создан еще? Да и вообще странный пример, чтобы создать один объект нужно создать другой, но другой создается из первого, а первый не может создаться без второго? Замкнутый круг.
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
10.12.2013, 14:43     Ошибка получения переменной класса #3
Что я не так написал?
Смотрите в сторону предварительное объявление класса.
Приведите пример где такое вы используете.
Nikkilla
 Аватар для Nikkilla
2 / 2 / 0
Регистрация: 24.02.2013
Сообщений: 62
14.12.2013, 14:09  [ТС]     Ошибка получения переменной класса #4
C++ я начал изучать недавно, и подобные ограничения по сравнению с Java мне пока не совсем понятны. К примеру у меня есть класс World - в этом классе создается игровой мир, персонажи и т.д. Внутри класса World создается класс Player - это класс игрока. Так вот. Из класса игрока нужно получить доступ к переменным класса World. Передавать десятки переменных в нужный класс не самый лучший вариант, потому как мне казалось легче передать класс World в класс Player и уже там из него брать необходимые переменные.
Peperovich
43 / 43 / 4
Регистрация: 17.05.2011
Сообщений: 162
14.12.2013, 14:55     Ошибка получения переменной класса #5
Это проблемы проектирования. Такого не будет при хорошо спроектированном проекте. Почитайте про Паттерны проектирования.
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,040
14.12.2013, 15:00     Ошибка получения переменной класса #6
Цитата Сообщение от Nikkilla Посмотреть сообщение
потому как мне казалось легче передать класс World в класс Player и уже там из него брать необходимые переменные.
почитай про frend классы, функции
а вообще Peperovich,прав
Цитата Сообщение от Peperovich Посмотреть сообщение
Это проблемы проектирования.
если Player может
Цитата Сообщение от Nikkilla Посмотреть сообщение
брать необходимые переменные.
то значит и сможет менять,а это уже нарушение ООП
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.12.2013, 15:01     Ошибка получения переменной класса
Еще ссылки по теме:

C++ Удаление переменной типа класса
C++ Установить значение переменной из другого класса
C++ Разное значение переменной класса, в разных экземплярах класса

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
14.12.2013, 15:01     Ошибка получения переменной класса #7
Nikkilla, нет понятия "переменная класса".
Yandex
Объявления
14.12.2013, 15:01     Ошибка получения переменной класса
Ответ Создать тему
Опции темы

Текущее время: 00:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru