2010-08-24 62 views
5

Tôi muốn tạo trong lớp dự án "Màn hình", "Đồ họa", "Phông chữ" và "Môi trường", nhưng khi tôi nhập các tên này và nhấn enter, tôi nhận được thông báo: "Màn hình" được đặt trước tên lớp hoặc "Môi trường" là tên lớp dành riêng. Tôi không muốn làm cho CScreen hoặc ScreenC hoặc một cái gì đó như thế:/Tôi có Visual Stuido 2010. Có cách nào để sửa lỗi này?Tên lớp dành riêng Visual C++

+0

Visual Studio 8 cho phép nó, vì vậy có thể quay trở lại VC8 có thể là một lựa chọn !! – DumbCoder

+6

Nhập mã của bạn thay vì sử dụng thuật sĩ. Hoặc sử dụng từ điển đồng nghĩa. –

+0

Bạn đã tạo loại dự án nào? Bạn đã cố gắng tạo ra những lớp đó như thế nào? Không ai trong số những cái tên được dành riêng trong việc thực hiện C++ của VS2010. – jalf

Trả lời

0

Bạn cần hoàn toàn không phải #include các lớp này vào dự án của bạn hoặc tạo không gian tên cho các lớp của bạn và sau đó sử dụng không gian tên đó khi bạn cần giải quyết.

Nếu bạn muốn người lập trình khác sử dụng mã của bạn, họ có thể nhầm lẫn rằng bạn đang sử dụng lại tên của các lớp mà họ đã biết, vì vậy sẽ tốt hơn nếu bạn tìm ra tiền tố cho lớp học của bạn .

9

Tôi nghĩ việc sử dụng không gian tên là câu trả lời.

1

Bạn có ý gì khi "Tôi nhập những tên này và nhấn enter"? Đây có phải là thông báo Lớp Wizard không? Trong trường hợp này, bạn chỉ cần tạo các tệp h và cpp theo cách thủ công. Tôi không biết bất kỳ tính năng C++ nào không cho phép sử dụng các tên này cho một lớp. Tất nhiên, trong trường hợp va chạm tên, hãy sử dụng không gian tên.

0

Tôi tìm giải pháp: Tôi có thể thêm riêng Graphics.cpp và Graphics.h, Environment.cpp và ..vv:/Nhưng tôi vẫn không biết tại sao tôi không thể sử dụng "thêm lớp":/

+0

Bạn thực sự cần nghiên cứu các không gian tên, chúng là câu trả lời. – JustBoo

+0

Tại sao không gian tên? Xem http://img814.imageshack.us/i/screenshotec.png/ Tôi chưa viết bất kỳ mã nào trong các tệp này. – PiTeReK

+0

Tôi tin rằng bản thân IDE đang ngăn bạn sử dụng những tên đó. Ngay bây giờ nó có thể không có vẻ quan trọng, nhưng trong "công ty" dự án tên tập tin có một cách không bao giờ "chết" và tuyên truyền. Bạn sống với họ "mãi mãi". Những gì chúng tôi đặt tên cho mọi thứ không quan trọng. – JustBoo

4

Đây là lỗi trong Visual Studio. Có một số tên mà sản phẩm của VS 2010 của Microsoft tin tưởng được bảo lưu, bởi vì các sản phẩm khác của Microsoft sử dụng tên đó. Tuy nhiên, bạn rõ ràng không bị buộc phải sử dụng các sản phẩm khác của Microsoft và vì đây không phải là các tên được đặt trước của C++, đây là lỗi và cần được sửa. Nó chỉ nên báo cáo điều này là xung đột tên khi bạn bao gồm một cái gì đó đã sử dụng tên. Tôi cũng đã thấy trình biên dịch làm điều này cho "Module" trên một dự án C++ thuần túy (không có MFC, ATL, vv).

Trong thời gian chờ đợi, hãy sử dụng tùy chọn Thêm mục mới và tạo tiêu đề và triển khai bằng tay. Những người khác đã đề cập rằng tên là quan trọng, điều đó đúng, nhưng tôi không thể hiểu tại sao họ sẽ sử dụng nó để ngăn cản bạn sử dụng các tên như Màn hình, Đồ họa, Phông chữ, v.v. . Chắc chắn không cố che khuất ý nghĩa bằng cách tra cứu các từ không phổ biến trong từ điển. Ngoài ra, đừng cố gắng thêm tiền tố vào tên lớp của bạn - không gian tên là công cụ thích hợp khi bạn tạo thư viện sẽ được người khác sử dụng lại. Tiền tố là công cụ cũ được sử dụng 15 năm trước khi các không gian tên chưa được thêm vào ngôn ngữ.

2

Như những người khác đã đề cập, đây là Visual Studio ngăn bạn sử dụng tên, vì không có lý do chính đáng.

Cách dễ nhất để có được khắc phục hạn chế này, trong khi vẫn sử dụng "Add -> Class ..." thoại là

  1. Loại một tên hơi khác nhau lớp trong "Tên nhóm:" hộp (nói "Screen_" thay vì "Screen")
  2. Chỉnh sửa tên tệp theo cách thủ công trong ".h tệp:" và ".cpp tệp:" trong hộp thoại sao cho chúng là Screen.h và Screen.cpp
  3. Nhấp vào "Hoàn tất" để tạo tệp lớp học (tên tệp sẽ chính xác, nhưng lớp thực tế sẽ là Screen_)
  4. Chỉnh sửa theo cách thủ công nó là văn bản trong các tệp, để thay đổi "Screen_" thành "Screen"
Các vấn đề liên quan