Форум программистов, компьютерный форум 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... подробнее

Показать сообщение отдельно
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
02.04.2012, 13:38     Свойства класов - зачем помещать свойство в приват
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Ты всегда объявляешь константным любой метод, который не изменяет поля?
Именно так.
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Чтобы он мог вызываться у констант?
Именно так. Поэтому все переменные, которые не могут (не должны, но все мы люди) изменяться я делаю константными.
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
в чём суть
Как и 90% всего кода - самодокументирование. Называя метод Get* и не делая его константным - ты врёшь самому себе. Создавая не константный метод, который не изменяет инвариант класса - ты врёшь себе. Создавая метод, который должен быть функцией, ты себе не врёшь, но помещаешь в интерфейс класса то, что не является частью его интерфейса, а это уже ошибка.

Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Ну и что, но он же работает?
Индусы с тобой согласны, да. У них тоже "всё работает".

Добавлено через 1 минуту
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
где проходит грань при выборе сделать функцию методом класса или другом или в пространстве имён?
То, что является интерфейсом класса, должно быть в интерфейсе класса. То, что не является интрфейсом класса, должно не быть функцией в пространстве имён класса.
 
Текущее время: 11:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru