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

Класс Матрица - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ ошибки линковки с++(... http://www.cyberforum.ru/cpp-beginners/thread440922.html
помогите пожалуйста!! справится с ошибками линковки масив.obj : error LNK2001: unresolved external symbol "void __cdecl obr(int &,int *)" (?obr@@YAXAAHPAH@Z) масив.obj : error LNK2001: unresolved external symbol "void __cdecl vvod(int &,int *)" (?vvod@@YAXAAHPAH@Z) Debug/масив.exe : fatal error LNK1120: 2 unresolved externals Error executing link.exe. #include <iostream> #include <conio.h>...
C++ Нетбинс ругается создаю срр файл на нетбинсе самый обычный компилирую выводит окошку с сообщением невозможно создать папку nbproject! С чего бы? Как можно исправить? http://www.cyberforum.ru/cpp-beginners/thread440910.html
ошибка в считывание файла или записи C++
#include <iostream> #include <fstream> #include <cstdlib> #include <cstring> #include <altconio.h> #include <iomanip> using namespace std; struct br
C++ Вычислить уравнения
Добрый день! Помогите пожалуйста решить 2 задачи на Языке С++ 1. Вычислить y=√(3+√(6+⋯+ √(96+√99) ) ) 2. Вычислить p=(1-1/2^2 )(1-1/2^3 )…(1-1/n^2 ),где n>2
C++ NullReferenceException http://www.cyberforum.ru/cpp-beginners/thread440851.html
Здравствуйте, ребят. Второй месяц изучаю С++, вот на днях задался целью написать связанный список. К сожалению, материала по этой теме не столько много поэтому после прочтения двух статей я взялся за дело. Вот что у меня вышло: #include <stdafx.h> #include <iostream> #include <cstdlib> #include <string> using namespace std;
C++ Как управлять веб-камерой с помощью кода. Здравствуйте, как написать программу, которая будет использовать веб-камеру для съемки видео или фотографий. Знаете, что-то вроде motion detection хотелось реализовать, но не знаю как. P.S. веб-камера logitech QuickCam for Notebooks подробнее

Показать сообщение отдельно
Felsurt
5 / 5 / 0
Регистрация: 06.02.2012
Сообщений: 19
06.02.2012, 17:52
замечания, которые сразу бросаются в глаза

1. Очень плохо использовать using дерективы в заголовочных файлах (в вашем случае 6: using namespace std.
Краткое пояснение.
Я пользуюсь своей функцией sort, она мне очень нравиться, но другие алгоритмы использую из <algorithm>
для них я явно прописываю std::name ну или прописал необходимые using объявления. Иными словами моя функция sort никак не пересекается со стандартной.
Но стоит мне подключить заголовочник с вашей матрицей, как на весь мой код начнет действовать using деректива всего пространства std и я тут же получу множество конфликтов своей функции sort со стандартной.
Я надеюсь, что этот пример пояснил немного, почему это не здорово

2. Конструктор не должен (!) выбрасывать исключений. Это грубейшая ошибка, которая приводит к утечкам памяти.
Дело в том, что выбросив исключение из конструктора вы больше не можете гарантировать в каком состоянии находиться объект.

3. В конструкторе по умолчанию вы не выделяете память и зануляете указатель, но в деструкторе обращаетесь к i-тому элементу, чтобы очистить строку.
Думаю проблема очевидна

Ну и на последок: хорошим тоном проектирования класса является следующее:
Весь базовый функционал (необходимый минимум) сделать методами класса, все остальное внешними функциями.
Например: если вы поместили нечто в метод класса, то фактически вы обязываете меня пользоваться этим методом, но если вы сделали это нечто отдельным методом, то вы даете мне возможность заменить это своей реализацией.
Зачем это нужно: вы можете гарантировать, что ваша реализация самая лучшая во всем мире и что она устроит по точности/скорости всех пользователей вашего класса?

И еще, не проще ли было хранить матрицу в виде одномерного массива?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru