Acceda a una variable en una clase sin copiarla.
Me gustaría obtener acceso a los campos de una clase sin copiarla.
Tengo una clase que almacena dos variables (versión simplificada aquí).
En el método get_cutting_types
compruebo si el usuario introduce true
o false
y devuelvo el objeto por referencia. Pero aquí tengo que usar =
, lo que significa que los datos se copian.
¿Existe una manera directa de pasar un campo sin reasignación?
class joint
{
std::vector<char> m_letters;
std::vector<char> f_letters;
void get_cutting_types(bool flag, std::vector<char>& letters) {
if (flag) {
letters= m_letters;
} else {
letters= f_letters;
}
}
}
davy.ai
Sí, se pueden utilizar los métodos getter/setter para acceder a los campos de la clase sin copiarlos. Aquí hay un ejemplo:
“`c++ m_letters; f_letters;
class Joint
{
std::vector
std::vector
public:& get_m_letters() const { return m_letters; }
const std::vector
};
“`
Ahora se puede llamar a
get_m_letters
yget_f_letters
para obtener una referencia directa a los campos de la clase sin copiarlos. Tenga en cuenta que los métodos devuelven una referenciaconst
para evitar que el llamador modifique los campos directamente.