cuốn sách gpt4 ai đã làm

c++ template

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 12:39:53 hai mươi bốn 4
mua khóa gpt4 Nike

out Tại sao c++ yêu cầu tham số mẫu khi cả hai hàm thành viên (từ mẫu và chuyên môn) đều yêu cầu mẫu? Bởi vì tôi không hiểu và việc tìm kiếm trên Google cũng không giúp ích được gì. Phải là c++11 nhưng có lỗi tương tự như c++1z.
Tôi đang sử dụng g++ 7.3.0

Nhận được thông báo lỗi này:

lỗi: thiếu đối số mẫu trước mã thông báo '>'
Tail::out

(o);//<--?!?!?!

#include 

using namespace std;

sử dụng Out=ostream;

cấu trúc O {};

mẫu
struct Tĩnh: công khai O {
mẫu
văn bản cấu trúc {
in nội tuyến tĩnh void(Out& o) {o<<>
};
};

mẫu
cấu trúc Endl {
in nội tuyến tĩnh void(Out& o) {O::print(o);o<<>
};

mẫu
cấu trúc MenuData {
sử dụng Đầu=O;
sử dụng Tail=MenuData;
mẫu<> lớp P>
nội tuyến tĩnh void out(Out& o) {
P::print(o);
Tail::out

(o);//<--?!?!?!
}
};

mẫu
cấu trúc MenuData {
sử dụng Đầu=O;
sử dụng Last=OO;
mẫu<> lớp P>
nội tuyến tĩnh void out(Out& o) {P::print(o);P::print(o);}
};

///////////////////////////////////////////////////////////////// //// ///////
const char* op1Text="Op1";
sử dụng op1=Static<>::Text<&op1Text>;

const char* op2Text="Op2";
sử dụng op2=Static<>::Text<&op2Text>;

const char* op3Text="Op3";
sử dụng op3=Static<>::Text<&op3Text>;

sử dụng MainMenu=MenuData;

int main(int argc,char** argv) {
MainMenu::out(cout);
cout<<>
}

câu trả lời hay nhất

Sau đoạn mã bên dưới, tôi tìm thấy câu hỏi/câu trả lời tuyệt vời này để làm rõ nó

Tôi phải đặt từ khóa "mẫu" và "tên chữ" ở đâu và tại sao?

Sau nhiều giờ thử nghiệm và kiểm tra, tôi vẫn chưa hài lòng, việc này sẽ đơn giản hơn nên nếu ai có giải pháp tốt hơn tôi sẽ vui lòng chấp nhận, nhưng tôi vẫn không hiểu tại sao phiên bản đầu tiên không được chấp nhận... .

Phiên bản này biên dịch và in kết quả mong muốn, tôi sẽ tiếp tục

#include 

using namespace std;

sử dụng Out=ostream;

cấu trúc O {};

mẫu
struct Tĩnh: công khai O {
mẫu
văn bản cấu trúc {
in nội tuyến tĩnh void(Out& o) {o<<>
};
};

mẫu
cấu trúc Endl {
in nội tuyến tĩnh void(Out& o) {O::print(o);o<<>
};

mẫu
cấu trúc MenuData {
// sử dụng Head=O;
// sử dụng Tail=MenuData;
mẫu<> lớp P>
sử dụng X=typename MenuData::template OutData

;
mẫu<> lớp P>
cấu trúc OutData {
nội tuyến tĩnh void out(Out& o) {
P::print(o);
X

::out(o);//<--?!?!?!
};
};
};

mẫu
cấu trúc MenuData {
// sử dụng Head=O;
// sử dụng Last=OO;
mẫu<> lớp P>
cấu trúc OutData {
nội tuyến tĩnh void out(Out& o) {
P::print(o);
P::print(o);
}
};
};

///////////////////////////////////////////////////////////////// //// ///////
const char* op1Text="Op1";
sử dụng op1=Static<>::Text<&op1Text>;

const char* op2Text="Op2";
sử dụng op2=Static<>::Text<&op2Text>;

const char* op3Text="Op3";
sử dụng op3=Static<>::Text<&op3Text>;

sử dụng MainMenu=MenuData;

int main(int argc,char** argv) {
MainMenu::OutData::out(cout);
cout<<>
}

Điểm nổi bật:

mẫu<> lớp P>
sử dụng X=typename MenuData::template OutData

;

Vì vậy tôi phải làm rõ lại rằng đó là một mẫu

Nhưng trong X

::out(o);//<--?!?!?! Sử dụng lại các tham số mẫu trong

Về chuyên môn mẫu của hàm thành viên c++ template

hai mươi bốn 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress