Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / При наследовании, когда создаешь объект наследника вызывается конструктор базового класса / 9 сообщений из 9, страница 1 из 1
22.03.2014, 20:01
    #38593708
gera3323
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При наследовании, когда создаешь объект наследника вызывается конструктор базового класса
можно как то это убрать? не нужен вызов базового конструктора.
...
Рейтинг: 0 / 0
22.03.2014, 20:12
    #38593714
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При наследовании, когда создаешь объект наследника вызывается конструктор базового класса
gera3323не нужен вызов базового конструктора.
по религиозным соображениям или причины какие есть?
...
Рейтинг: 0 / 0
22.03.2014, 20:14
    #38593715
gera3323
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При наследовании, когда создаешь объект наследника вызывается конструктор базового класса
Изопропил,

причины на то есть. Ну зачем этот вопрос нужно было задавать ?

ответить то не мог нормально?
...
Рейтинг: 0 / 0
22.03.2014, 20:16
    #38593716
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При наследовании, когда создаешь объект наследника вызывается конструктор базового класса
gera3323,

от причин зависит выбор решения
...
Рейтинг: 0 / 0
22.03.2014, 20:19
    #38593717
gera3323
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При наследовании, когда создаешь объект наследника вызывается конструктор базового класса
Изопропил,
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
	static MYSQL *connection;

	// Класса для поддержки связи с базой.
	class CMySqlBase
	{
		public:
			CMySqlBase( const char *host = def_localhost
					   ,const char *user = def_user
					   ,const char *pass = def_pass
					   ,const char *db   = def_db
					   ,const int port   = def_port ) throw( CMySqlError );

			~CMySqlBase()
			{
				mysql_close(connection);
			}

		private:
			MYSQL mysql;
	};

	// Класс для работы с базой.
	class CMySql
	{
		 public:
			CMySql()
			{

			}
	};



Как видишь есть два класса один служит только для связи с бд, другой для работы с ней.
если каждый раз создавать объект CMySql, то мы каждый раз будет подключаться к ней. но этого делать не надо.
ну я уже решил эту проблему сделал переменную глобальной.
...
Рейтинг: 0 / 0
22.03.2014, 20:24
    #38593721
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При наследовании, когда создаешь объект наследника вызывается конструктор базового класса
gera3323Как видишь есть два класса один служит только для связи с бд, другой для работы с ней.
если каждый раз создавать объект CMySql, то мы каждый раз будет подключаться к ней. но этого делать не надо.
очень плохое решение
...
Рейтинг: 0 / 0
22.03.2014, 20:26
    #38593723
gera3323
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При наследовании, когда создаешь объект наследника вызывается конструктор базового класса
Изопропил,

посоветуй как лучше
...
Рейтинг: 0 / 0
22.03.2014, 20:56
    #38593734
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При наследовании, когда создаешь объект наследника вызывается конструктор базового класса
gera3323если каждый раз создавать объект CMySql, то мы каждый раз будет
подключаться к ней. но этого делать не надо.
Значит не надо наследовать CMySql от CMySqlBase. Обычно классы, инкапсулирующие запрос или
курсор только ссылаются на объект инкапсулирующий коннект.

Ну и идея подключаться прямо в конструкторе тоже не слишком хорошая: при выбросе
исключения будешь иметь проблемы с автоматическим уничтожением и срабатыванием деструктора.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
22.03.2014, 23:11
    #38593772
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
При наследовании, когда создаешь объект наследника вызывается конструктор базового класса
gera3323можно как то это убрать? не нужен вызов базового конструктора.


Никак. Он всегда нужен.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / При наследовании, когда создаешь объект наследника вызывается конструктор базового класса / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]