LINUX.ORG.RU

Ответ на: комментарий от chkalov

Модуль - это что?

это некий класс с неймспейсом, то есть файлы .cpp и .h относящееся к чему-то одному.

ioexception
() автор топика
Ответ на: комментарий от chkalov

Создай public метод, очевидно, который бы возвращал размер вектора.

А без правки исходников этого модуля как-то возможно обратится?

ioexception
() автор топика

член приватный

прям в прон паблик каконнть

Есть скажем приватный член типа вектор в одном модуле, как получить его размер в других модулях?

anTaRes ★★★★
()

Т.е. ты хочешь расшарить свой приватный член-вектор по чужим модулям, чтобы они почувствовали размер?

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

dimon555 ★★★★★
()

Зачем вообще другим модулям знать размер этого приватного члена, начнём с этого

Harald ★★★★★
()
Ответ на: комментарий от dimon555

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

Проблема в том, что владелец помещения не разрешает вносить корректировки в дизайн помещения ради пати.

ioexception
() автор топика
Ответ на: комментарий от Harald

Зачем вообще другим модулям знать размер этого приватного члена

Вы наивны, знать размер члена хочет каждый класс, и не только из интереса, например что бы повытаскивать из него нужные элементы.

ioexception
() автор топика
Ответ на: комментарий от Harald

Ну а как же тогда пишут например подобную задачу: есть 1.h, 1.cpp, 2.h, 2.cpp, в первом содержится вектор типа стринг, во втором в этот вектор добавляются значения, удаляются, модифицируются, читаются?

ioexception
() автор топика
Ответ на: комментарий от ioexception

man инкапсуляция. Второй класс вообще не обязан знать, что у первого в кишках творится.

deadNightTiger ★★★★★
()
Ответ на: комментарий от ioexception

Вы наивны, знать размер члена хочет каждый класс, и не только из интереса, например что бы повытаскивать из него нужные элементы.

звучит как фейл бай дезайн

anTaRes ★★★★
()
Ответ на: комментарий от ioexception

> ну организуй пати с бесплатной выпивкой, должно получиться.

Проблема в том, что владелец помещения не разрешает вносить корректировки в дизайн помещения ради пати.

ну тогда пригласи на тусу — Паbлика Морозова :-)

https://ru.wikipedia.org/wiki/Антипаттерн#.D0.A8.D1.83.D1.82.D0.BE.D1.87.D0.B...

user_id_68054 ★★★★★
()
Последнее исправление: user_id_68054 (всего исправлений: 1)

Есть скажем приватный член типа вектор в одном модуле

Знаю про приватные члены класса. А что такое приватные члены модуля?

А вообще лучше бы выложить код.

aureliano15 ★★
()
Ответ на: комментарий от ioexception

твоя архитектура кода говно

anonymous
()
Ответ на: комментарий от ioexception

Проблема в том, что владелец помещения не разрешает вносить корректировки

т.е. твой вопрос: как обойти корректировки?

emulek
()

Так делать нельзя, если для него не определено публичных аксессоров.

Тебе прямая дорога в питон.

buddhist ★★★★★
()
Последнее исправление: buddhist (всего исправлений: 1)

Если интересуетесь C++ и Qt

Могу помочь с изучением C++, Qt, ООП - бесплатно и без каких либо издёвок:) Все мы были начинающими. Стучать в джаббер на аналогичный никнейм.

CriDos
()

автору уже сказали, что у него в дизайне/архитектуре/ДНК проблемы?

anonymous
()
Ответ на: комментарий от ioexception

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

не сможет, т.к. данный член класса приватный

next_time ★★★★★
()
Ответ на: комментарий от ioexception
другойкласс->добавитьОлоло(икс);
другойкласс->удалитьОлоло(зед);
anonymous
()
Ответ на: комментарий от ioexception

Если член приватный, то через геттеры и сеттеры. Либо сделать второй клас friend для первого, но для этого нужно иметь веские архитектурные причины.

four_str_sam
()
Ответ на: Если интересуетесь C++ и Qt от CriDos

Могу помочь с изучением C++, Qt, ООП - бесплатно и без каких либо издёвок:)

Я бы предложил сначала взглянуть на другие темы автора. Судя по всему, учить ему не хочется, хочется просто сдать кое-как.

DarkEld3r ★★★★★
()
Ответ на: комментарий от msgxx

лично я считаю, что это дюже справный троль подкамменный, иначе к чему авы оскорбляющие чувства верующих, и темы йоды магистра в стиле, про члены.

pon4ik ★★★★★
()

В C++ нет модулей. std::vector - не тип, а шаблон класса.

Иди читай учебник.

anonymous
()

Главное не размер.

anonymous
()
Ответ на: комментарий от buddhist

Мой пост относился к CriDos.

Тогда нужно было отвечать на его сообщение, а не на мое.

andreyu ★★★★★
()
Ответ на: комментарий от ioexception

в первом содержится вектор типа стринг, во втором в этот вектор добавляются значения, удаляются, модифицируются, читаются?

Перенести

добавляются значения, удаляются, модифицируются, читаются?

туда, где они и должны быть, в первый.

goingUp ★★★★★
()
Ответ на: комментарий от aureliano15

А вообще лучше бы выложить код.

У меня крепнет подозрение, что лучше бы выложить пароль. Топикстартеру.

alegz ★★★★
()
Ответ на: комментарий от CriDos

Имя домена созвучно жабберу:)

jabber.ru, jabber.org, jabber.by, etc.? Какому из них?

andreyu ★★★★★
()
Ответ на: комментарий от backburner

Все private'ы станут public'оми, где гарантия что не сломается бинарная совместимость?

Ну так дефайн-то тут каким боком? Или по вашему #define TRUE 0 и #define FALSE 1 тоже UB?

andreyu ★★★★★
()
Ответ на: комментарий от ioexception

Конечно, это же C++, один из способов

#define private public

Reset ★★★★★
()
Ответ на: комментарий от andreyu

Если у тебя в одной единице трансляции олни и те же поля были в классе public, а в другой - private, то стандарт не гарантирует бинарную совместимость.

anonymous
()
Ответ на: комментарий от emulek

Да. Компилятор имеет право по разному размещать поля в разных секциях public/protected/private. У тебя в разных единицах трансляции будут разные секции и в этом случае будет UB.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.