powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Оцените класс
23 сообщений из 23, страница 1 из 1
Оцените класс
    #34394949
Baikaly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здраствуйте.
Недавно начал программировать в Visual С++ 6.0
Мне надо составить класс поднадзорных индивидуальных предпринимателей.
Я сделал как считал правильным, но помойму он очень большой получается или это нормлально вот класс:
Class CNaturalPerson
{
public:
CString GetFamilyName()
CString GetFirstName()
CString GetSecondName()
CString GetPlaceWork()
CPost GetPost()
CString GetPlaceLife
CString GetCityBorn
Date GetDataBorn
CString GetDocumentName
CString GetDocumentNumber
CString GetDocumentTake
Date GetDocumentDataTake
CString GetIPINN
BOOL GetIsIP
Date GetIPDataReg
CString GetIPNumberReg
BOOL IsNewObject
CString GetIPOGRN
CString GetTelefon
CString GetDopInfo
Date GetCreateData
CEmployee GetCreateEm
BOOL GetChangeIs
Date GetChangeData
CEmployee GetChangeEm
SetFamilyName (CString strFamilyName)
SetFirstName (CString strFirstName)
SetSecondName (CString strSecondName)
SetCityLife (CString strCityLife)
SetStreetLife (CString strStreetLife)
SetPost (CPost post)
SetPlaceWork(CString strPlaceWork)
SetCityBorn (CString strCityBorn)
SetDataBorn (Date datData)
SetDocumentName (CString strDocName)
SetDocumentNumber (CString strDocNumber)
SetDocumentTake (CString strDocTake)
SetDocumentDataTake (Date datDataTake)
SetIPINN (CString strINN)
SetIsIP (BOOL bIP)
SetIPDataReg (Date datIPReg)
SetIPNumberReg (CString strIPNumber)
SetIPOGRN (CString strOGRN)
SetTelefon (CString strTel)
SetDopInfo (CString strDopInfo)

private:
strName : CString
strFamilyName : CString
strFirstName : CString
strSecondName : CString
datBirthday : Date
strCityLife : CString
strStreetLife : CString
strPlaceWork : CString
strDocument : CString
strNuberDoc : CString
strWhoGive : CString
datDataGive : Date
strINN : CString
strHunterTicket : CString
strOGRN : CString
datDataReg : Date
datDataIP : Date
strTelefon : CString
strDopInfo : CString
nidEmCreate : int
datDateCreat : Date
datDateChange : Date
nidEmChange : Int
bNewObject : BOOL = FALSE
};
Вот такой класс
...
Рейтинг: 0 / 0
Оцените класс
    #34395025
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
очень не удобно будет с этим всем работать, в особенности если понадобиться добавить еще пару параметров... для таких дел используют БД
--------------------------------------------------------------
[подпись с другого сайта]
...
Рейтинг: 0 / 0
Оцените класс
    #34395133
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну это еще не большей клас :))

А так , действительно , может посмотреть в сторону БД ?
...
Рейтинг: 0 / 0
Оцените класс
    #34395180
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JibSkeartНу это еще не большей клас :))

А так , действительно , может посмотреть в сторону БД ?
Интересно, а чем БД вам поможет, придется еще несколько классов создать чтобы мапирование обеспечить.
...
Рейтинг: 0 / 0
Оцените класс
    #34395338
Фотография mnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нормальный класс. БД здесь вообще не причём. Может автор всё будет в плоских файлах хранить...
...
Рейтинг: 0 / 0
Оцените класс
    #34395346
Baikaly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вся информация храниться в БД, есть еще классы CNaturalPersonMapper, который получает данные из базы данных и формирует объекты класса CNAturalPerson. А обекты класса CNaturalPerson это уже конечные объекты который передается в слой представления для заполнения строк формы.
...
Рейтинг: 0 / 0
Оцените класс
    #34395396
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нормально. Класс данных как класс данных. Вот если бы ему еще функционал какой, а то одни get да set. Вот только декларации в private почему-то в паскалевой нотации
...
Рейтинг: 0 / 0
Оцените класс
    #34395816
MYTH777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Слишком большой.
Если В файлах не Бд-шных хранить такую инфу, то почему бы не пользоваться структурами.
И написать ф-ции для работы с этими стр-ми. Т.Е. сохранение, чтение. А потом просто юзать эти переменные в стр-ре. Или на Бд перейти.
Вот и все.
...
Рейтинг: 0 / 0
Оцените класс
    #34396897
Teem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
class пишется а не Class, вы что в блокноте писали,
я уже не говорю об объявлении переменных. Так в С++ не пишут.
...
Рейтинг: 0 / 0
Оцените класс
    #34397244
Baikaly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вы почти правы так в текстовый файл переносит Visual Studio Modeler просто лень было править все вручную, в Visual c++ переносит все правильно.
...
Рейтинг: 0 / 0
Оцените класс
    #34397421
Фотография goodbit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разбейте на более мелкие по смыслу. А потом вставьте эти экземпляры классов в ваш самый большой класс. Нормализовать так и хочеться!
...
Рейтинг: 0 / 0
Оцените класс
    #34397446
Класс как класс, правде если если нет функционала, то лучше бы структуру без кучи get'ов и set'ов. Но раз уж вы их ввели, то надо бы вместо SetFamilyName (CString strFamilyName) и остальных сделать SetFamilyName (const CString& strFamilyName), так правильнее
...
Рейтинг: 0 / 0
Оцените класс
    #34397671
grieg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ничего нового почти не скажу.
1. Написанное тут -- простое хранилище данных. Если оно простое хранилище, то нафиг нужны get/set. Делай структуру.
2.
Код: plaintext
1.
2.
3.
CString GetDocumentName
CString GetDocumentNumber
CString GetDocumentTake
Проглядывает намешивание в одну структуру всего и сразу. Атрибуты документа -- это атрибуты документа (простите за тавтологию), а не персоны. У персоны атрибут -- сам документ. Документ -- это в качестве примера. К остальным атрибут тоже присмотреться надо.
3. Почему Visual С++ 6.0 ? Это все-таки старье.
4. Пусть меня поправят виндусятники, но я не понимаю, нафига нужны нестандартные CString и BOOL, когда есть стандартные std::string и bool?
5. Все-таки вопрос о структуре класса хорошо бы рассматривать в контексте решаемой задачи.
...
Рейтинг: 0 / 0
Оцените класс
    #34398525
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Baikaly пишет:

> Недавно начал программировать в Visual С++ 6.0
> Мне надо составить класс поднадзорных индивидуальных предпринимателей.

Никому не нужен класс с инкапсуляцией, но без какой-либо функциональности.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Оцените класс
    #34399810
k e k s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это вообще компилится???
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Class CNaturalPerson  <-- "Class" - "class"
{
public:
CString GetFamilyName()   <-- где ";"
..
..
private:
strName : CString  <--  "CString strName;"
...
...
Рейтинг: 0 / 0
Оцените класс
    #34400046
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
действительно, можно лишь разбить его на подобъекты по тематике и, если получится, встроить функционал работы с базой – сохранение, выборка.
grieg3. Почему Visual С++ 6.0 ? Это все-таки старье.нормальное старьё. Ты имеешь что-то против?
...
Рейтинг: 0 / 0
Оцените класс
    #34400230
k e k s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"3. Почему Visual С++ 6.0 ? Это все-таки старье."

VC++6 отличное IDE. Еще бы табы для окон вместо Window->Windows (Window list) и цены бы ему небыло.
...
Рейтинг: 0 / 0
Оцените класс
    #34400303
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
k e k s пишет:

> VC++6 отличное IDE. Еще бы табы для окон вместо Window->Windows (Window
> list) и цены бы ему небыло.

Табы для него есть как plug-in.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Оцените класс
    #34400818
k e k s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv
k e k s пишет:

> VC++6 отличное IDE. Еще бы табы для окон вместо Window->Windows (Window
> list) и цены бы ему небыло.

Табы для него есть как plug-in.
Posted via ActualForum NNTP Server 1.4

можно линк?
заранее спасиб
...
Рейтинг: 0 / 0
Оцените класс
    #34401057
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
k e k s пишет:
> можно линк?

Я не помню. Даже как называется. Помню что есть.
Приблуда какая-то типа VisualAssist, но не он.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Оцените класс
    #34401556
k e k s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv
k e k s пишет:
> можно линк?

Я не помню. Даже как называется. Помню что есть.
Приблуда какая-то типа VisualAssist, но не он.
Posted via ActualForum NNTP Server 1.4


спасибо, добрый человек! нашел! Делаю поддержку для пары проектов в VS6. Очень рад. Буду пользовать. супер вещч!!

Кому интересно, вот линк:
http://www.codeproject.com/macro/wndtabs.asp?df=100
...
Рейтинг: 0 / 0
Оцените класс
    #34401984
grieg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmoдействительно, можно лишь разбить его на подобъекты по тематике и, если получится, встроить функционал работы с базой – сохранение, выборка.
Встраивать в структуру функционал по ее извлечению из базы -- не уверен, что это правильно.
Во-первых, не всякая работа с сущностью должна быть инкапсулирована в саму сущность.
Во-вторых, записи БД имеют совсем другую семантику присваивания и копирования, чем структуры C++.

нормальное старьё. Ты имеешь что-то против?
На самом деле ничего конкретного не имею. Просто полагаю, что без веских причин не стоит использовать старую версию продукта, когда есть новая, потому что:
1) в новых версиях фиксятся баги
2) в новые версии добавляются фичи
3) некоторые вещи из старых версий объявляются deprecated
Мало того, сам C++ не стоит на месте. Как там у 6-ой версии с iostrem vs iostream.h ?
...
Рейтинг: 0 / 0
Оцените класс
    #34406864
duha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что если сделать класс со вложениями из классов.
например
class PersonName
{
CString GetFamilyName()
CString GetFirstName()
CString GetSecondName
}

//ну так, для примера. ну или вместо классов структуры использовать
class PersonAddress
{...}

class personJob
{...}

...
class CNaturalPerson
{
PersonName name;
PersonAddress address;
PersonDocument document;
...
итд
}

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


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