Форум программистов, компьютерный форум 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, параметр тот же. Они одинаковые. Полностью. То есть...
C++ У меня возникла проблема с программой, окно задерживается на 1 секунду и исчезает, на других версиях Microsoft Express тоже самое
Доброе Время Суток У меня возникла проблема с компилируемым окном , при проверки он задерживается на 1 секунду и исчезает , на других версиях Microsoft Express 2006 и 2012 такая же проблема ...
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);...
C++ Переписать в одномерный массив элементы матриц А и В, имеющие одинаковые индексы Помогите. Вот задачка: Заданные две квадратные матрицы одинакового размера - А и В. Переписать в одномерный массив R те элементы матриц А и В, имеющие одинаковые индексы и значения. В полученном... подробнее

Показать сообщение отдельно
VladSharikov
22 / 22 / 1
Регистрация: 02.12.2010
Сообщений: 824

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

20.01.2013, 14:39. Просмотров 340. Ответов 6
Метки (Все метки)

Привет.
Перегружал оператор= для своего класса.

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 везде, где только можно, если объект не должен изменяться. Вот и пихаю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru