tengo esta clase con un método de instancia llamado abierta y la necesidad de llamar a una función declarada en C también llamado abierta. Una muestra de la siguiente manera:Llamada en C++ una función no miembro dentro de una clase con un método con el mismo
void SerialPort::open()
{
if(_open)
return;
fd = open (_portName.c_str(), O_RDWR | O_NOCTTY);
_open = true;
}
Cuando intento compilar (usando GCC) me sale el siguiente error:
error: no matching function for call to 'SerialPort::open(const char*, int)'
Incluí todas las cabeceras C requeridos. Cuando cambio el nombre del método, por ejemplo, open2, no tengo problemas para compilar.
¿Cómo puedo resolver este problema. Gracias de antemano.
Como nota al margen, debe evitar comenzar sus nombres con "_". – Bill
¿No ves por qué? Y es muy útil para las variables miembro. – jassuncao
Es un punto del estándar: la mayoría de los identificadores que comienzan con '_' están reservados. La lista exacta es un poco complicada. Es algo así como: incluyendo 2 '_' consecutivos, comenzando por' _' seguido de una mayúscula, etc. ... y como no es probable que memorices la lista exacta, es mejor evitarla. –