Форум программистов, компьютерный форум CyberForum.ru

Свойства класов - зачем помещать свойство в приват - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Error C2668: sqrt: неоднозначный вызов перегруженной функции http://www.cyberforum.ru/cpp-beginners/thread536026.html
Что не так? Ma= sqrt ((2*b^2 + 2 * c^2 - a^2)/4); Mb= sqrt ((2*a^2 + 2 * c^2 - b^2)/4); Mc= sqrt ((2*a^2 + 2 * b^2 - b^c)/4); 1>------ Построение начато: проект: dz, Конфигурация: Debug Win32 ------ 1> dz.cpp 1>c:\users\михаил\documents\visual studio 2010\projects\dz\dz\dz.cpp(16): error C2668: sqrt: неоднозначный вызов перегруженной функции
C++ Найти среднее арифметическое елементов каждого из непарных столбцов матрицы Размерность матрицы вводить самому http://www.cyberforum.ru/cpp-beginners/thread536016.html
istream_iterator C++
Добрый день, уважаемые форумчане! Прошу ответить на следующий вопрос - почему, когда создается istream_iterator пустым конструктором (например, в алгоритме copy для указания конца потока/файла), то вызывается конструктор объекта того класса, который мы передаем в качестве шаблонного аргумента?? Т.е., почему он вообще вызывается? Пример: .... class Test { public: Test() { cout <<...
Вложенные циклы. Вычисление двойной суммы. C++
#include<stdlib.h> #include<stdio.h> #include<math.h> long factor(int k) {long res; if((k==1)||(k==0)) res=1; else res=factor(k-1)*k; return res; }
C++ Как сделать выход из программы при условии выполнения предписания? http://www.cyberforum.ru/cpp-beginners/thread535999.html
Смысл кода: вводим столь-ко то значений и находим из них максимальное. Как сделать так, чтоб, когда вводимое значение было равно "-1", то программа завершалась? #include "stdafx.h" #include <iostream> #include <conio.h> using namespace std; int main() { setlocale(LC_CTYPE, "Russian");
C++ Скопировать строку в переменную Здравствуйте, программа читает txt файл, в нем есть несколько строк, я хочу записать содержимое 2(для примера) строки в переменную. Меня направили почитать об std::string и std::getline, там не нашел ответа, хотя может быть что-то упустил(с английским не очень хорошо). В google нашел вариант с использованием boost::spirit, но он очень тяжелый для новичка. На чем я остановился: main.cpp... подробнее

Показать сообщение отдельно
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
02.04.2012, 03:23     Свойства класов - зачем помещать свойство в приват
А меня аргумент "потому, что так правильно" вполне устраивает, если произнесён кем-то сведующим в вопросе. Причины, по которым "так надо", станут понятны по мере приобретения опыта. Читаю книжку Perl Cookbook Тома Кристиансена и Натана Торкингтона (по мере прочтения проникся искренним уважением к авторам, к тому же в самой документации perl сплошь и рядом ссылки на эту книгу). В perl поддержка ООП вообще весьма своеобразно сделана. В частности нет стандартных средств языка для ограничения доступа к данным класса (что, в прочем не мешает истинным параноикам запрятать данные так, что захочешь - не доберёшься), но вот, что пишут авторы по этому поводу:
Работа методов зависит от того, как вы организуете открытый интерфейс к объекту. Нормальный класс не любит, чтобы окружающие копались у него во внутренностях. Для каждого атрибута данных должен существовать метод, обеспечивающий его чтение или обновление. Если пользователь пишет фрагмент вида:
Perl 6
1
2
3
$him = Person->new();
$him->{NAME} = "Sylvester";
$him->{AGE} = 23;
он нарушает интерфейс объекта и напрашивается на неприятности.
Ну а в С++, где есть способ запретить пользователю прямой доступ к данным класса, просто грех этим не воспользоваться. Разумеется, если класс не просто хранит значения переменной plain типа, при этом не заботясь о смысле и допустимости этих самых значений...
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru