Mã sau được biên dịch tốt (không có dấu chấm phẩy sau mỗi dòng). Tại sao dấu chấm phẩy không cần thiết ở cuối mỗi dòng trong phần công khai?Dấu chấm phẩy tùy chọn trong C++
Lưu ý: đặt dấu chấm phẩy sau mỗi dòng cũng được, vì vậy có vẻ như sử dụng dấu chấm phẩy ở đây là tùy chọn.
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;
};
Các câu lệnh này là các định nghĩa hàm (phương pháp). Bạn không cần phải đặt ';' sau phần thân của hàm. –
Kiểm tra điều này: http://stackoverflow.com/questions/785686/in-c-classes-why-the-semi-colon-after-the-closing-brace – Jack
IIRC, '-pedantic' trên GCC than phiền nếu bạn đặt dấu chấm phẩy sau khi định nghĩa hàm. – chris