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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Nikkilla
2 / 2 / 0
Регистрация: 24.02.2013
Сообщений: 62
#1

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

10.12.2013, 14:26. Просмотров 246. Ответов 6
Метки нет (Все метки)

Есть 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++ Удаление переменной типа класса
C++ Разное значение переменной класса, в разных экземплярах класса
Инициализация переменной члена класса C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Peperovich
43 / 43 / 4
Регистрация: 17.05.2011
Сообщений: 162
10.12.2013, 14:39     Ошибка получения переменной класса #2
Ну вообще *this указатель на текущий объект, как ты его передаешь в конструкторе, если он не создан еще? Да и вообще странный пример, чтобы создать один объект нужно создать другой, но другой создается из первого, а первый не может создаться без второго? Замкнутый круг.
egor2116
338 / 369 / 42
Регистрация: 20.01.2013
Сообщений: 1,123
10.12.2013, 14:43     Ошибка получения переменной класса #3
Что я не так написал?
Смотрите в сторону предварительное объявление класса.
Приведите пример где такое вы используете.
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
Модератор
6516 / 4982 / 460
Регистрация: 14.02.2011
Сообщений: 16,504
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++
C++ Ошибка при работе с объектом класса в конструкторе другого класса
C++ Получения доступа к переменной другого класса

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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru