19.09.2014 / 21:11 | |
Naik Пользователь Сейчас: Offline
Имя: %name% Регистрация: 14.03.2010
| aNNiMON, прототип не вставил просто
|
19.09.2014 / 21:14 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| Naik, тогда стандартный ответ "зависит от компилятора"
__________________
let live |
19.09.2014 / 22:51 | |
dzanis Пользователь Сейчас: Offline
Имя: Жаник Откуда: Rezekne Регистрация: 18.11.2010
| Naik, Неужели 5 ? Это тогда странно и по питонски. Ой,инкримент забыл,будет 6? Изменено dzanis (19.09 / 22:53) (всего 1 раз) |
19.09.2014 / 23:11 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| dzanis, gcc говорит 5 http://ideone.com/RL3qD5 но всё-таки это от компиля зависит, я уверен. __________________
let live Изменено aNNiMON (19.09 / 23:11) (всего 1 раз) |
19.09.2014 / 23:17 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| Кому нужна куча подобных упоротых вопросов по C++ (и не только), вот, держите. По C++ там в конце обычно, вначале C#. Если нужны ответы, пишите номер вопроса, я кину.
__________________
let live Изменено aNNiMON (19.09 / 23:18) (всего 2 раза)
Прикрепленные файлы: I тур(Rus) Olym(…).pdf (324.86 кб.) Скачано 481 раз I тур(Rus) Olym(…).pdf (319.22 кб.) Скачано 1113 раз |
20.09.2014 / 14:16 | |
NeiroNext Пользователь Сейчас: Offline
Имя: Михаил Откуда: Херсон Регистрация: 16.01.2010
| Здраствуйте! Помогите разобраться в чем проблема, хотя я догадываюсь в чем она, но не знаю как это реализовать на С++. Мне нужно узнать как это реализовать на С++. Вот пример: класс А обьявляет класс В, в который передается ссылка на текущий класс, но чтобы эту ссылку понимать класс В включает (include) класс А (в этом и проблема) , но из-за указанной проблемы класс В так и не знает ничего об классе А и компилятор выдает ошибку. A.h#ifndef A_H
#define A_H
#ifndef ONE
#define ONE 1
#include "B.h"
#endif // ONE
class A
{
public:
A();
virtual ~A();
protected:
private:
B *b;
};
#endif // A_H
A.cpp#include "A.h"
A::A(){
b = new B(this);
}
A::~A(){
}
B.h#ifndef B_H
#define B_H
#include "A.h"
class B
{
public:
B(A *a); // Про класс А ничего неизвестно, поэтому ошибка
virtual ~B();
protected:
private:
A *a; // Ошибка
};
#endif // B_H
B.cpp#include "B.h"
B::B(A *a){
this->a = a;
}
B::~B(){}
Очень надеюсь на помощь, т.к. в гугле просто не могу это найти а проблема для меня новая т.к. привык к java где такой проблемы не будет. Всем заранее спасибо!!! |
20.09.2014 / 14:22 | |
aRiGaTo Пользователь Сейчас: Offline
Имя: Snork Откуда: Yerevan Регистрация: 03.02.2010
| NeiroNext, сомневаюсь, что макропроцессор умеет работать с классами. Может, проблема в этом?
__________________
don't tread on me |
20.09.2014 / 14:31 | |
NeiroNext Пользователь Сейчас: Offline
Имя: Михаил Откуда: Херсон Регистрация: 16.01.2010
| aRiGaTo, Да как так то, си++ ведь ОО язык, здесь вроде как или зацыкливание, или при проверке компилятором хидера класса В класс А ещё не полностью проверился и про него ничего неизвестно. Я просто незнаю как это исправить |
20.09.2014 / 14:54 | |
aRiGaTo Пользователь Сейчас: Offline
Имя: Snork Откуда: Yerevan Регистрация: 03.02.2010
| NeiroNext, #ifdef-#endif -директивы макропроцессора. Вычисляются не во время исполнения, а до - во время компиляции. P.S.: Зачем они вообще нужны здесь?
__________________
don't tread on me Изменено aRiGaTo (20.09 / 14:54) (всего 1 раз) |
20.09.2014 / 15:07 | |
NeiroNext Пользователь Сейчас: Offline
Имя: Михаил Откуда: Херсон Регистрация: 16.01.2010
| aRiGaTo, А, извиняюсь, это я забыл их прибрать, на них можно не обращать никакого внимания, к проблеме они отношения не имеют - баловался ими немноно.
|