EDIT: Иногда случается так, что наша проблема не в коде, а в нашем способе судить о том, что правильно и что неправильно. Я пишу свою проблему на примере, поскольку это поможет объяснить это. Проблема заключается в том, что «если наша функция обрабатывает каждое исключение сама по себе. В примере, который я продемонстрировал, он иногда становится запутанным и более похож на то, что записывает один и тот же код во всем мире.Письменные функции в C++
Когда мы пишем код на языке C своим видом плавного процедурного языка. мы обрабатываем ситуации, когда они приходят. Например, учитывая (a, b, c), чтобы найти, какой тип треугольника он (NOT_POSSIBLE, Equilateral, Isosceles, Scalar). Мы вводим их и продолжаем проверять сначала равносторонние, а затем равнобедренные, а затем скалярные, и т.д.
в C++ мы делаем функции, чтобы проверить эти условия (так isEuilateral()
и isScalar()
являются две функции, которые проверяет его).
Проблема в следующем: сейчас isScalar()
Функция «должна» проверить, является ли она равносторонней или нет, а затем ее собственное состояние или просто ее условия.
Является ли это головная боль isScalar()
функции, чтобы проверить, является ли это равносторонний треугольник или нет, то есть:
if(isEquilateral())
return false;
else if(a==b)
return true;
else if (b==c)
return true;
...
Или начать с себя:
if(a==b) return true; // not checking equilateral
....
Или это должен делать только свою работу и предоставлять функции. Обязанности программистов должны были проверить object.isEquilateral()
до object.isScalar()
.
поэтому я открыл этот класс api Triangle и отправил его вам. U знаю только имя функции, как isEquilateral() и isIsosceles(), как ... поэтому вам назначено задание для создания приложения, которое вводит 3sides треугольника a, b, c и сообщает, что это за треугольник. .. ok .. input 3,3,3, ваша программа тогда должна проверять состояние равностороннего состояния до состояния изосекуляции, а вызов isIsoceles() без вызова isEquilateral() не является безопасным для этого вывода. , isIsoceles() теперь не является независимой функцией. NOt завершен или это не ошибка. что делать?
Ну, на самом деле это пример, который не содержит все мое замешательство.
Вопрос в том, должна ли каждая функция обрабатывать каждое исключение явно. Разве это не будет избыточность и дублирование кода.
Обратите внимание, что мы не можем выполнить функцию для проверки всех исключений, поскольку некоторые исключения здесь не будут исключениями в каком-либо другом месте.
Боюсь, я нахожу этот вопрос очень неясным. Почему вы предполагаете, что есть способ, которым вы * имеете * делать что-то на C и на C++? C++ поддерживает многие парадигмы, и если вы хотите, вы можете писать в том же стиле, что и в C ... Какова идея здесь? У вас есть код C, для которого вы ищете хороший объектно-ориентированный дизайн на C++? –