В настоящее время я рефакторинг кода и интересно ли следующее (т.е. присваивание функции, которая возвращает ссылку) на самом деле плохой стиль (по крайней мере, это выглядит странно):назначения на функцию, которая возвращает ссылку
#include <iostream>
class A{
public :
double & operator()() {
return this->x;
};
double operator()() const{
return this->x;
};
protected :
double x = 0.0;
};
int main(){
A a;
a() = 4.0;
std::cout<<a()<<std::endl; //prints 4.0 as expected.
};
фона позади этого является то, что у меня есть некоторый код, который работает параллельно и используя что-то вроде:
A.d
просто не вариант, в то время как:
A()
будет работать, так как я могу оставить выбор памяти для функции.
(я знаю кодирования стиль несколько субъективный вопрос, но я ученый, а не инженер-программист и хорошая обратная связь практика ценится)
это зависит от того, А, и будет ли "вызова" один делает для читаемым повествования. Вас может заинтересовать этот ответ: http://stackoverflow.com/questions/41149115/is-overloading-operator-for-a-reconstruction-a-good-practice/41150295#41150295 –