Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2015, 15:17   #1
chipside
Форумчанин
 
Регистрация: 03.08.2013
Сообщений: 208
По умолчанию Можно ли класс разделить на модули?

Если возможно, то у каждого модуля будет свои конструкторы и деструкторы или как?
Покажите простой пример из двух модулей или дайте, пожалуйста, ссылку.
chipside вне форума Ответить с цитированием
Старый 17.11.2015, 15:21   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Вы хотите разделить класс на два или что? Или на два файла?
p51x вне форума Ответить с цитированием
Старый 17.11.2015, 15:33   #3
chipside
Форумчанин
 
Регистрация: 03.08.2013
Сообщений: 208
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Вы хотите разделить класс на два или что? Или на два файла?
Допустим есть Main.cpp и класс foo в модуле a.h + a.cpp
Получается, что файл a.cpp избыточно массивен.
Плодить новые классы не хочется, а хочется создать дополнительный модуль
b.cpp + b.h, в котором будет размещена часть кода класса foo.
chipside вне форума Ответить с цитированием
Старый 17.11.2015, 15:57   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

И кому лучше станет от размазывания реализации одного класса на два файла? Только еще больше запутаетесь.
Чем разделение на несколько классов не подходит?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 17.11.2015, 16:11   #5
chipside
Форумчанин
 
Регистрация: 03.08.2013
Сообщений: 208
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
И кому лучше станет от размазывания реализации одного класса на два файла? Только еще больше запутаетесь.
Чем разделение на несколько классов не подходит?
В private, скажем, есть базовые переменные, которые выводить из класса
не планируется.
Именно с ними и идёт работа.
Даже, если использовать ссылки и указатели вне класса на них,
то они не изменяются. По крайней мере пока не понял как.
-----------
Main.cpp
Код:
#include "ab.h"

int main ( void ) {
	foo1 c;
	c.a();
	c.b();
	return 0;
}
ab.h
Код:
#ifndef AB_H
#define AB_H

class foo1 {
	public:
		foo1();
		~foo1();
		void a ( void );
		void b ( void );
	private:
		static const int a1 = 1, b1 = 2;
}; /* The End of class */ 

#endif /* AB_H */
a.cpp
Код:
#include <iostream>
#include "ab.h" 

foo1::foo1() {
	std::cout << "The constructor" << std::endl;
};
foo1::~foo1() {
	std::cout << "The distructor" << std::endl;
};
void foo1::a ( void ) {
	std::cout << "Hello from a!" << a1 << std::endl;
}
b.cpp
Код:
#include <iostream>
#include "ab.h"  

void foo1::b ( void ) {
	std::cout << "Hello from b!" << b1 << std::endl;
}
компиляция и сборка:
Код:
g++ -c a.cpp -o a.o
g++ -c b.cpp -o b.o
g++ -c Main.cpp  -o Main.o
g++ -o pro Main.o a.o b.o
выполнение:
Код:
./pro
The constructor
Hello from a!1
Hello from b!2
The distructor
Получился прототип.
Дальше буду сам думать, где зарыта @

Последний раз редактировалось chipside; 17.11.2015 в 16:53.
chipside вне форума Ответить с цитированием
Старый 17.11.2015, 16:49   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Ну, в принципе, может а.цпп поделить хоть пополам а.цпп и ы.цпп, только в а.цпп допишите инклуд ы.цпп
p51x вне форума Ответить с цитированием
Старый 17.11.2015, 17:41   #7
chipside
Форумчанин
 
Регистрация: 03.08.2013
Сообщений: 208
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Ну, в принципе, может а.цпп поделить хоть пополам а.цпп и ы.цпп, только в а.цпп допишите инклуд ы.цпп
Видал я, что .cpp цепляют, но пока сам не пробовал.
С ссылками разобрался.
Спасибо за соучастие!
chipside вне форума Ответить с цитированием
Старый 17.11.2015, 18:24   #8
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

я бы расширение таки указал не cpp, а inl какой-нибудь, чтобы IDE по умолчанию не подхватывала все cpp в компилятор.
pu4koff вне форума Ответить с цитированием
Старый 17.11.2015, 19:36   #9
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от chipside Посмотреть сообщение
Если возможно, то у каждого модуля будет свои конструкторы и деструкторы или как?
Покажите простой пример из двух модулей или дайте, пожалуйста, ссылку.
модули покамест ещё не завезли.
ожидаются не раньше 17 стандарта.

а то, чего хотите вы,
называется разделением кода по единицам трансляции.

можете хоть каждую очередную функцию-член
определять в отдельном спп файле.

а вот декларация самого класса должна быть в одном месте.
_Bers вне форума Ответить с цитированием
Старый 17.11.2015, 20:46   #10
chipside
Форумчанин
 
Регистрация: 03.08.2013
Сообщений: 208
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
я бы расширение таки указал не cpp, а inl какой-нибудь, чтобы IDE по умолчанию не подхватывала все cpp в компилятор.
Я по старинке -- через Makefile.
Раньше пробовал на баше сценарий писать, но потом понял, что "разбег на рубль, удар на копейку". Да и баш меняется постоянно.
chipside вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
библиотечные модули пользователя,модули CRT и DOS лерка:) Паскаль, Turbo Pascal, PascalABC.NET 0 08.01.2012 14:57
Как можно закрепить за окном класс(указатель на него) Warn Общие вопросы Delphi 7 06.11.2011 15:05
Каким образом можно узнать сборку, которой принадлежит определенный класс? Stilet Общие вопросы .NET 2 08.02.2010 15:19
С помощью какой команды можно разделить двоичное число на биты? Корделия Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 17.11.2009 21:56
Можно ли разделить сразу несколько цифр на одно и тоже число? Xell Microsoft Office Excel 2 12.01.2009 13:32