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

Использование классом объектов другого класса - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ В матрице выбрать n элементов в разных строках и разных столбцах так, чтобы их сумма была минимальной http://www.cyberforum.ru/cpp-beginners/thread1067810.html
Помогите,пожалуйста Добавлено через 2 часа 23 минуты примерный алгоритм как это можно сделать
C++ Посоветуйте штуку для визаулизации Мне нужна какая ни будь штука для визуализации С++; Я хочу писать программку которая распознает буковки. Мне надо чтобы программа могла считывать нарисованные штучки и обррабтывать. Ну и сама могла бы что-то выводить. http://www.cyberforum.ru/cpp-beginners/thread1067803.html
C++ Преобразовать массив таким образом, чтобы сначала располагались все по- ложительные элементы, а потом все остальные.как доработать?
#include <iostream> #include <stdlib.h> #include <time.h> #include <cmath> using namespace std; void float1(double *mass, int const n); void float2(double *mass, int const n);
Не удаётся записать строчку из файла C++
Всем здрасьте. У меня есть файл, и запись в нём. Мне нужно записать в переменную эту запись. Но не получается :( Вот код: #include <Windows.h> #include <fstream> using namespace std; int main() {
C++ Не записывает структуру в файл http://www.cyberforum.ru/cpp-beginners/thread1067782.html
Здравствуйте, вот собственно код: struct mystruct { double i; char color; char material; }; int main(int argc, char* argv) {
C++ Конструктор в Visual Studio 2013 Есть ли конструктор в Visual Studio 2013 в языке C++, в C# нашел, а в С++ не найду проект с конструктором. подробнее

Показать сообщение отдельно
space_agent
 Аватар для space_agent
0 / 0 / 0
Регистрация: 10.01.2014
Сообщений: 4
10.01.2014, 20:23     Использование классом объектов другого класса
Допустим есть два класса, назовём их First и Second, которые используют друг друга.
Объявления классов в заголовочных файлах, определения в cpp:

Пример:
First.h

C++
1
2
3
4
5
6
7
8
9
10
#include "Second.h"
class First
{
int field;
public:
First ();
void method();
}
 
#include "First.h"
Second.h

C++
1
2
3
4
5
6
7
class
{
First * obj;
public:
Second(First * );
void sec();
}

Если через #include добавлять заголовочные файлы классов друг к другу, как указано выше, это будет нарушением SOLID.
Но если пробовать написать, допустим, таким образом:

C++
1
class First;
Second.h

C++
1
2
3
4
5
6
7
class
{
First * obj;
public:
Second(First *);
void sec();
}
то в конструкторе можно присвоить obj полученный объект типа First, но нельзя его использовать.
В смысле, нельзя обратиться к методам.

Компилятор выдаёт ошибку: недопустимый неполный тип.

Создать новый объект типа First тоже нельзя, т. е. если написать в конструкторе
C++
1
obj = new First();
вылезет та же ошибка.

Подскажите, если не трудно, что я делаю не так и как нужно использовать объекты классов.

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