Tôi có một loại được liệt kê StackID
và tôi đang sử dụng kiểu liệt kê để tham chiếu đến chỉ mục của một vectơ cụ thể và làm cho mã của tôi dễ đọc hơn.Tại sao tôi không thể tăng biến của một loại được liệt kê?
Tuy nhiên, bây giờ tôi có nhu cầu tạo biến số được gọi là nextAvail
thuộc loại StackID
. (nó thực sự đề cập đến một stackID cụ thể). Tôi đã cố gắng để tăng nó nhưng trong C + +, sau đây là bất hợp pháp:
nextAvail++;
Loại nào có ý nghĩa với tôi ... bởi vì không có giới hạn kiểm tra.
Tôi có thể nhìn thấy một cái gì đó hiển nhiên, nhưng thay thế tốt là gì?
Tôi cũng muốn liên kết đến câu hỏi this.
@sbi - Nó chắc chắn sẽ làm mọi thứ đơn giản cho tôi để làm điều này. nhưng bạn nói gì với các áp phích đề nghị rằng một 'enum' có nghĩa là thể hiện một tập hợp các giá trị tùy ý? – BeeBand
@BeeBand - nếu có bất kỳ việc sử dụng nào cho '++', tôi cho rằng bạn có lý do chính đáng để vượt ra ngoài việc sử dụng Enums thông thường của C++ như là các int được kiểm tra thời gian biên dịch. Mặt khác, mã của Sbi có thể làm với một số kiểm tra ràng buộc. Trong Java, enums chỉ là một loại hạng nhẹ với các thành viên không thể sửa đổi được - nó được chấp nhận thực hành để đặt các phương pháp trong đó. Xem http://download.oracle.com/javase/1.5.0/docs/guide/language/enums.html. – tucuxi
@BeeBand: Tôi không đồng ý. Có lẽ năm trong mười cuốn sách giáo khoa 'enum' ví dụ là một cái gì đó giống như' enum tháng {Jan, Feb, ..., Dec}; 'và do đó một ví dụ hoàn hảo cho enenumerations có thể tăng. Trong 15 năm cuối cùng của việc thực hiện C++, tôi đã quá tải 'toán tử ++' cho các liệt kê có thể ít hơn năm lần. Nhưng tôi đã thực hiện nó. – sbi