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

Ghi đè các vị trí Qt trong các lớp con

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-02 23:54:05 27 4
mua khóa gpt4 Nike

Tôi có một lớp cơ sở xác định khe Qt

lớp cơ sở
{
public:
Căn cứ()
{
connect(otherobject, SIGNAL(mySignal), this, SLOT(mySlot));
}
khe công cộng:
khoảng trống ảo mySlot()
{}
}

Lớp con A chỉ thực hiện một cái gì đó khác. Lớp con B bao phủ khe cắm

lớp SubB: Cơ sở
{
public:
SubB() : Cơ sở()
{
// Cần thiết?
connect(otherobject, SIGNAL(mySignal), this, SLOT(mySlot));
}
khe công cộng:
ghi đè ảo mySlot()
{}
}

Việc ghi đè vị trí có thay thế kết nối được thực hiện trước đó trong hàm tạo Bass (tức là kết nối trong SubB là không cần thiết) không?

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

Nó thậm chí còn tốt hơn nữa: bạn không cần phải làm bất cứ điều gì đặc biệt với các vị trí trong các lớp dẫn xuất. Không cần phải biến nó thành ảo (nó đã có theo ngữ nghĩa C++) và không cần phải biến nó thành một vị trí nữa (nó đã theo ngữ nghĩa Qt). hiện hữu bắt nguồn Việc thêm kết nối thứ hai vào là không chính xác, nó chỉ khiến khe cắm được kích hoạt hai lần mỗi lần tín hiệu được kích hoạt.

Hãy nhớ rằng tín hiệu và vị trí là các phương thức C++ thông thường và các vị trí được gọi từ mã do máy tạo trông giống như bạn đang gọi một vị trí mà không chỉ định lớp cụ thể mà nó thuộc về. Do đó, các khe ảo giống như bạn tưởng tượng, chúng phải được cung cấp ngữ nghĩa của C++.

Những điều sau đây sẽ đủ:

Lớp cơ sở: QObject công khai
{
Q_ĐỐI TƯỢNG
public:
Base(QObject * src, QObject * parent = 0): QObject(parent)
{ connect(src, SIGNAL(mySignal), SLOT(mySlot) }
Q_SLOT khoảng trống ảo mySlot() {}
};

Lớp phái sinh: Cơ sở công cộng
{
Q_ĐỐI TƯỢNG
public:
Derived(QObject * src, QObject * parent = 0): Base(src, parent) {}
void mySlot() Q_DECL_OVERRIDE { ... }
};

Về c++ - ghi đè các vị trí Qt trong các lớp con, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/29170751/

27 4 0
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