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

Нужен const или нет - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Функция strncat http://www.cyberforum.ru/cpp-beginners/thread767028.html
Написать вариант функции strncat(s,t,n), которая копирует не более n букв стринга t в конец стринга s и программу для проверки работоспособности этой функции.
C++ Массивы. Упорядочить элементы заданного массива целых чисел по убыванию количества единиц... Задание 1 Упорядочить элементы заданного массива целых чисел по убыванию количества единиц, содержащихся в двоичном представлении элементов массива. http://www.cyberforum.ru/cpp-beginners/thread767023.html
C++ Метод Set
Привет. Такая проблемка. Ну даже не проблемка, а так :) Есть класс, есть конструктор, принимающий в кач-ве параметра char*, есть метод Set, параметр тот же. Они одинаковые. Полностью. То есть делают одни и те же действия. if(isIdent(_Data)) { Length = strlen(_Data); Data = new char; Data = strcpy(Data, _Data);
C++ У меня возникла проблема с программой, окно задерживается на 1 секунду и исчезает, на других версиях Microsoft Express тоже самое
Доброе Время Суток У меня возникла проблема с компилируемым окном , при проверки он задерживается на 1 секунду и исчезает , на других версиях Microsoft Express 2006 и 2012 такая же проблема P.S. знаю что это окно не так называется Заранее спасибо!
C++ нужно найти ошибки в задаче на языке C/ их в районе 10 как выдает компилятор но я не могу их исправить (не знаю как) http://www.cyberforum.ru/cpp-beginners/thread766985.html
#include <math.h> #include <conio.h> #include <stdio.h> void main() { int xa, ya, xb, yb; cprintf("vvod xa, ya, xb, yb"); cscanf("%d/n" &xa, &ya, &xb, &yb); if(pow(xa,2)+pow(ya,2)<=1)&&(xa>-1)&&(xa<1)&&(ya>-1)&&(ya<1)cpintf("/n oblast A"); if(pow(xa,2)+pow(ya,2)<=9)&&(xa>-3)&&(ya>-3)||(xa<3)&&(ya<3)&&(ya>-3)cprintf("/n oblast B");
C++ Переписать в одномерный массив элементы матриц А и В, имеющие одинаковые индексы Помогите. Вот задачка: Заданные две квадратные матрицы одинакового размера - А и В. Переписать в одномерный массив R те элементы матриц А и В, имеющие одинаковые индексы и значения. В полученном массиве найти первый (а) и последний (b), индексы заданного пользователем натурального числа s. Если число s, встречается в массиве R не менее двух раз, заменить этим числом элемент матрицы с... подробнее

Показать сообщение отдельно
VladSharikov
 Аватар для VladSharikov
22 / 22 / 1
Регистрация: 02.12.2010
Сообщений: 824
20.01.2013, 14:39     Нужен const или нет
Привет.
Перегружал оператор= для своего класса.

C++
1
2
3
4
5
Identificator& Identificator::operator=(const Identificator &_r_oper) {
    Length = _r_oper.getlen();
    Data = new char[Length+1];
    strcpy(Data, _r_oper.Get());    
}
Программа возмутилась на строках 2 и 3. Не понравилось ей то, что методы Get и getlen были не const (на stackoverflow решение посоветовали такое). Я из изменил:
C++
1
2
3
4
5
6
int String::getlen(void) const {
    return Length;  
}
char* Identificator::Get(void) const {
    return Data;    
}
не пугайтесь, функция getlen просто унаследована .

и все заработало.
боюсь, что решение топорное. скажите правильно ли я поступил изменив методы на const? надо ли было это сделать сразу же при их создании? могут ли быть какие-то последствия (если например программа не в 20 строк, как у меня, а в 20 000)?

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