2010-10-05 40 views
10

Tôi là lập trình viên "C" chỉ biết các bit nhỏ nhất của C++. Tôi đang xem xét một số mã nguồn C++ đang cố gắng để hiểu một số điều mà nó đang làm. Tôi có thể làm việc ra hầu hết nhưng đôi khi có cú pháp tôi không nhận ra và tôi muốn có thể "tra cứu" ý nghĩa của cú pháp để tôi có thể đọc đủ để hiểu rằng bit của C++. Nhưng bạn không thể chỉ cần gõ một loạt các biểu tượng vào google - hoặc bất cứ điều gì để tìm hiểu ý nghĩa trong C + +. Bất kỳ đề xuất nào về cách tôi có thể làm điều này nói chung?Tra cứu ngược C++

Cú pháp cụ thể tôi đang đấu tranh với ngay bây giờ là như sau:

void Blah<BOARD>::Generate(SgPoint p) 

tầm quan trọng của <BOARD> trong bối cảnh này là gì? Tôi nên tìm kiếm điều gì để hiểu nó?

+4

C++ là một chút không tầm thường đối với loại tiếp cận này. –

+5

Thực ra, giải pháp đơn giản nhất là những gì bạn vừa làm: hỏi về SO. – ereOn

+0

@ereOn: Vâng, câu trả lời hiện được bình chọn là người đứng đầu trong 8 phút sau khi Mick đăng câu hỏi của mình. Thêm vào đó một vài phút để soạn câu hỏi và một vài câu hỏi nữa để chờ đợi câu hỏi nào sẽ được bình chọn lên đầu, và mỗi khi anh ấy bị mắc kẹt anh ấy sẽ phải chờ 15-20 phút. Bạn thường nghĩ như thế nào, anh ấy cần phải gặp khó khăn để có thời gian tăng thêm đủ để lướt qua [Accelerated C++] (http://stackoverflow.com/questions/388242/) và có thể hiểu được nhiều nhất về những gì anh ta đi qua (không phải để có thể viết mã như vậy, nhớ bạn) mà không hỏi? – sbi

Trả lời

9

void Blah<BOARD>::Generate(SgPoint p)

Generate là một hàm thành viên của một class templateBlah.

BOARD là tên của tham số.

lớp học của bạn Blah có thể là như thế này:

template <typename BOARD> 
class Blah 
{ 
    //...some code 
    void Generate(SgPoint p); 
    //...some more code 
}; 
8

Blah rất có thể là lớp được tạo khuôn mẫu, Generate là phương thức từ lớp này và đây có thể là dòng đầu tiên của định nghĩa phương thức.

Chỉnh sửa: Oh và BOARD là thông số mẫu (có thể là loại hoặc giá trị tích phân).

+0

'' Đó là một mẫu _class_. Không có lớp mẫu. – sbi

+1

@sbi Bạn nói đúng rằng đó không phải là một lớp mẫu. Nhưng đó không phải là những gì tôi đã viết. –

+2

Tôi xin lỗi. Trong phòng thủ của tôi, tôi có thể nói rằng tôi đang sửa một người nào đó gần như hàng ngày ở đây. Đó có thể là lý do tại sao trình ghép mẫu của tôi không đúng với câu trả lời của bạn ... – sbi

6

Đây là phương pháp Generate của Blahclass template chuyên cho mẫu tham số BOARD.

Nói cách khác, những gì sau là mã thực tế được gọi khi mẫu Blah được sử dụng để xử lý một phiên bản của lớp BOARD.

Các lớp khác có thể được xử lý theo cách khác nếu chuyên môn riêng tồn tại cho chúng hoặc thông qua triển khai mặc định không chuyên biệt Generate hoặc hoàn toàn không có mặc định và không có chuyên môn cho chúng - trong trường hợp này, một nỗ lực gọi hàm đó sẽ không biên dịch.

Có giới thiệu ngắn về chủ đề chuyên môn mẫu here.

+1

Lưu ý rằng 'BOARD' có thể là tham số mẫu, nếu Mick bỏ qua' template '. – sbi