El siguiente código compilado bien (sin punto y coma después de cada línea). ¿Por qué no se necesitan puntos y comas al final de cada línea en la sección pública?Punto y coma opcional en C++
Nota: poner un punto y coma después de cada línea también está bien, por lo que parece que usar punto y coma aquí es opcional.
template<typename T>
class Accessor {
public:
explicit Accessor(const T& data) : value(data) {}
Accessor& operator=(const T& data) { value = data; return *this; }
Accessor& operator=(const Accessor& other) { this->value = other.value; return *this; }
operator T() const { return value; }
operator T&() { return value; }
private:
Accessor(const Accessor&);
T value;
};
Estas declaraciones son definiciones de funciones (métodos). No necesita poner ';' después del cuerpo de una función. –
Echa un vistazo a esto: http://stackoverflow.com/questions/785686/in-c-classes-why-the-semi-colon-after-the-closing-brace – Jack
IIRC, '-pedantic' en GCC se queja si ponga un punto y coma después de una definición de función. – chris