переменные класса
sdelay get_a
private:
int a;
public:
ClassA { a=10; };
int get { return a;};
};
void some_function{
ClassA my_a;
my_a.a=10; // это не должно работать.
int b=my_a.get; // - а это должно.
};
если я правильно тебя понял.
у меня переменные - указатели на массивы, которые в моей проге используются очень часто и вопрос скорости работы - для меня первоочередной. Если сделать функцию, которая будет из массива вытягивать элементы - это безусловно решение, но при этом будут тратиться лишние такты, нежели если использовать этот массив напрямую. За однократное выполнение проги число обращений к массиву - порядка 10^9. Конечно, можно не морочить себе голову и считать, что в этот массив никто не будет писать. то, что я хочу сделать - это типа защиты от дураков (ну или от самого себя ).
У меня просто книжки по c++ под рукой нет. И кстати я не помню, как изменяется доступ к переменным, если их объявлять в классе после protected ?
> нежели если использовать этот массив напрямую.
Если функция определена в заголовочном файле, то нормальный компилятор должен сгенерировать одинаковый код.
protected, пока нет наследования, ничего нового не привносит
все, всем большое спасибо.
Правильный компилятор должен соптимизировать.
А неправильный должен быть пропатчен соответствующим образом.
---
...Я работаю антинаучным аферистом...
я надеюсь, что компилятор в vs.net нормальный?
const type* get_a
По крайней мере, весьма сомнительно.
---
...Я работаю...
да.
А как же CRL? Или как он там называется-то?
---
...Я работаю...
Давай так. Компилятор С++ в VS6 в твоём понимании нормальный?
const_cast уже отменили?
---
...Я работаю...
>по сравнению производительности кода, далеко не самый лучший.
хм... с чем сравниваем?
const_cast - для уебанов
при желании можно ещё кучей способов доступ к этой памяти получить, и что с того?
---
...Я работаю...
для уебанов - reinterpret_cast
автор хочет не потерять в производительности из-за добавления указанной "фичи". это ведь несколько другое, правда?
По-моему, даже заметно лучше, но не уверен.
---
...Я работаю...
в целом, плюсовский компилятор в студии плохим назвать очень сложно.
для уебанов - reinterpret_cast
я юзал reinterpret_cast, когда ботал com и писал компоненты... УЖАС, я уебан
Сравнительно с доступными возможностями.
(Я подозреваю, что человек либо не требует лицензионной чистоты, либо может её себе позволить.)
---
...Я работаю...
Для АМД не помню. Надо смотреть.
Там ещё и гнусь есть.
---
...Я работаю...
не соглашусь
reinterpret_cast иногда бывает действительно нужен для некоторых (низкоуровневых) вещей
const_cast свидетельствует о (серьёзных) проблемах дизайна
P.S. вообще, по твоим постам очень похоже, что о программах, пишущихся несколькими людьми, у тебя представления чисто теоретические
Хинт: это риторический вопрос.
применение в такой ситуации реинтерпрет-каста - уебанство
однако, отсюда никак не следует утверждение "субж - для уебанов"
>P.S. вообще, по твоим постам очень похоже, что о программах, пишущихся несколькими людьми, у тебя представления очень смутные
Гы-гы. Несомненно, такой нереальный отец как ты, способен как-то аргументировать свои слова?
---
...Я работаю...
вообще - да. конкретно тебе - нет. бисер, свиньи, все дела...
Понятно. В очередной раз расписался в собственной некомпетентности. Впрочем, я другого и не ожидал.
Оставить комментарий
pav7
что нужно написать, чтобы в классе была переменная, в которую можно записывать в функциях класса, но вне его эта переменная была только для чтения?пример: