14-сұрақ: C++ тілінде класстарды жариялау синтаксисін көрсетіңіз. Класс объектілерін
құруды жəне класс объектілеріне қол жеткізу процесін сипаттаңыз.
Үлгілер - көп нәрсені жеңілдететін өте күшті механизм. Дегенмен, оларды дұрыс пайдалану көп уақыт пен тәжірибені талап етеді - оларды қашан пайдалану орынды екенін шешу.
Кодтың қайталануын азайту (ортақ контейнерлер, алгоритмдер)
Кеңейтілген код қайталануын азайту (MPL және Fusion)
Статикалық полиморфизм (= өнімділік) және басқа компиляция уақыты есептеулері
саяси дизайн (икемділік, қайта пайдалану, оңай өзгертулер және т.б.)
Ақысыз қауіпсіздік жақсартулары (яғни, Boost блоктарымен өлшемдер, статикалық бекітулер, тұжырымдаманы тексеру)
Функционалдық бағдарламалау (Феникс), жалқау бағалау, өрнек үлгілері (біз C++ тілінде доменге арналған ендірілген тілдерді жасай аламыз, бізде тамаша прото-кітапхана бар, бізде Blitz++ бар)
Күнделікті өмірде қолданылатын басқа аз әсерлі құралдар мен трюктар:
STL және алгоритмдер (үшін және әрқайсысының айырмашылығы неде)
Байлау, ламбда (немесе Феникс) (анықырақ код жазу, жеңілдету)
Масштабтау функциясы (кері қоңырауларды жазуды жеңілдетеді)
Кортеждер (жалпы кортежді хэштеу үшін қалай? Мысалы, Fusion пайдаланыңыз...)
TBB (parallel_for және басқа STL тәрізді алгоритмдер мен контейнерлер)
C++ тілін шаблондарсыз елестете аласыз ба? Иә, алғашқы күндерде компилятордың шектеулеріне байланысты оларды пайдалана алмадыңыз.
Сіз C++ тілінде шаблонсыз жаза аласыз ба? Жоқ, өйткені мен жоғарыда айтылған көптеген артықшылықтардан айырылатын едім.
15-сұрақ: Класс мүшелерінің функцияларын пайдалануды сипаттаңыз жəне олардың қолданылуына мысалдар келтіріңіз.
Мүше функциялары статикалық немесе статикалық емес. Статикалық мүше функциялары басқа мүше функцияларынан өзгеше әрекет етеді, себебі статикалық мүше функцияларында жасырын this аргументі болмайды. Статикалық емес мүше функцияларда this көрсеткіші бар. Статикалық немесе статикалық емес мүше функцияларын сынып декларациясында немесе одан тыс анықтауға болады.
Мүше функциясы сынып декларациясында анықталса, ол кірістірілген функция ретінде қарастырылады және функция атауын сынып атауымен сәйкестендірудің қажеті жоқ. Сынып декларацияларында анықталған функциялар кірістірілген функциялар ретінде қарастырылғанымен, кодты құжаттау үшін inlline кілт сөзін пайдалануға болады.
Төменде класс декларациясындағы функция мәлімдемесінің мысалы келтірілген.
Мүше функциясының анықтамасы сынып декларациясынан тыс болса, ол кірістірілген функция анық түрде жарияланған болса ғана кірістірілген функция болып саналады. Бұған қоса, анықтамадағы функция атауы аумақты ажырату операторын (::) пайдаланып сынып атымен сәйкестендірілуі керек.
Достарыңызбен бөлісу: |