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

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

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

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

10.12.2013, 14:26. Просмотров 255. Ответов 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", соответствующие списку аргументов
Что я не так написал?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2013, 14:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка получения переменной класса (C++):

Получения доступа к переменной другого класса - C++
Нужно получить доступ к переменным x и y класса Field из класса Snake. Как это сделать? // &quot;Змейка V0.1&quot; #include &lt;iostream&gt; ...

Получить доступ к переменной класса при наличии такого же имени переменной в функции - C++
Например, есть приватная переменная clientName в классе. Также есть точно такая же переменная в конструкторе этого класса. И мне нужно...

Получения количества полей класса - C++
Предположим, что я делаю шаблонную функцию для простого сложения. Если мне посылаются int и double, я просто складываю не акцентируя...

Разное значение переменной класса, в разных экземплярах класса - C++
Вот примерный код: class Test { private: static int countC; static int countD; void initWeight(){ double a; ...

При перегрузке оператора для класса не получается использовать имя переменной такое же, как в описании класса - C++
Описал первый класс,затем - описал второй класс, используя первый,и когда начал перезагружать оператор для второго класса, вылезла...

Ошибка в функции получения случайного значения - C++
Помогите, пожалуйста, понять в чем ошибка. Мне нужно создать класс Студент с определенными полями и методами. Столкнулась с ошибкой,...

6
Peperovich
43 / 43 / 4
Регистрация: 17.05.2011
Сообщений: 162
10.12.2013, 14:39 #2
Ну вообще *this указатель на текущий объект, как ты его передаешь в конструкторе, если он не создан еще? Да и вообще странный пример, чтобы создать один объект нужно создать другой, но другой создается из первого, а первый не может создаться без второго? Замкнутый круг.
0
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,126
10.12.2013, 14:43 #3
Что я не так написал?
Смотрите в сторону предварительное объявление класса.
Приведите пример где такое вы используете.
0
Nikkilla
2 / 2 / 0
Регистрация: 24.02.2013
Сообщений: 62
14.12.2013, 14:09  [ТС] #4
C++ я начал изучать недавно, и подобные ограничения по сравнению с Java мне пока не совсем понятны. К примеру у меня есть класс World - в этом классе создается игровой мир, персонажи и т.д. Внутри класса World создается класс Player - это класс игрока. Так вот. Из класса игрока нужно получить доступ к переменным класса World. Передавать десятки переменных в нужный класс не самый лучший вариант, потому как мне казалось легче передать класс World в класс Player и уже там из него брать необходимые переменные.
0
Peperovich
43 / 43 / 4
Регистрация: 17.05.2011
Сообщений: 162
14.12.2013, 14:55 #5
Это проблемы проектирования. Такого не будет при хорошо спроектированном проекте. Почитайте про Паттерны проектирования.
1
ValeryS
Модератор
6654 / 5063 / 470
Регистрация: 14.02.2011
Сообщений: 16,930
14.12.2013, 15:00 #6
Цитата Сообщение от Nikkilla Посмотреть сообщение
потому как мне казалось легче передать класс World в класс Player и уже там из него брать необходимые переменные.
почитай про frend классы, функции
а вообще Peperovich,прав
Цитата Сообщение от Peperovich Посмотреть сообщение
Это проблемы проектирования.
если Player может
Цитата Сообщение от Nikkilla Посмотреть сообщение
брать необходимые переменные.
то значит и сможет менять,а это уже нарушение ООП
0
taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
14.12.2013, 15:01 #7
Nikkilla, нет понятия "переменная класса".
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.12.2013, 15:01
Привет! Вот еще темы с ответами:

Удаление экземпляра класса в функции самого класса (Ошибка при отладке) - C++
Допустим, у нас есть класс Buffer, который хранит в себе указатель на класс некоторой матрицы и количество этих указателей refcounter ...

Ошибка при вызове метода класса в методе другого класса - C++
Господа программисты, возникла такая проблема. При вызове метода класса в методе другого класса выходит такая ошибка &quot; нестандартный...

Ошибка при работе с объектом класса в конструкторе другого класса - C++
Имеется данный код: https://github.com/ubelian/glgame/tree/master/glgame В файле Food.cpp в конструкторе класса Food::Food() на 19...

Ошибка компиляции (преобразование объекта класса в объект другого класса) - C++
Друзья, добрый день! Не могу понять почему выдается ошибка компиляции... Прога преобразует доллары США в старые Британские фунты. Но...


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

Или воспользуйтесь поиском по форуму:
7
Yandex
Объявления
14.12.2013, 15:01
Ответ Создать тему
Опции темы

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