반응형
Qt“비공개 양성소 :”이것은 무엇입니까?
나는 그것을 사용하는 방법을 이해하지만 그것의 구문은 나를 괴롭힌다. "비공개 제작자 :"이란 무엇입니까?
전에 클래스 정의에서 private 키워드와 : 사이에 서술을 본 적이 없습니다. 여기에 멋진 C ++ 마법이 있습니까?
그리고 여기에 예 :
#include <QObject>
class Counter : public QObject
{
Q_OBJECT
public:
Counter() { m_value = 0; }
int value() const { return m_value; }
public slots:
void setValue(int value);
...
이름은 C ++의 Qt 특정 확장입니다. Qt의 전처리 기인 MOC (Meta-Object Compiler)를 통해 코드를 전송 한 후에 만 컴파일됩니다. 설명서는 http://doc.qt.io/qt-5/moc.html 을 참조 하십시오 .
편집 : Frank가 지적했듯이 moc는 연결에만합니다. 추가 키워드는 표준 전처리기로 # 정의됩니다.
같은 키워드는 public
, private
Qt는 무시됩니다. 모든 것이 공용이며 있습니다.
추천 상품을 추천하지 않을 것입니다. 비공개 주소를 connect
.
신호를 private으로 선언하면이 클래스 만 관리 할 수 있지만 함수 멤버 포인터에는 액세스 제한이 없음을 의미합니다 .
class A{
private:
void e(){
}
public:
auto getPointer(){
return &A::e;
}
};
int main()
{
A a;
auto P=a.getPointer();
(a.*P)();
}
그 외에는 어떤 다른 답변 언급하는 것은 유효 너무 :
- 당신은 여전히 트릭 외부에서 개인 신호 와 슬롯을 연결할 수 있습니다
- signals
와 slots
빈 매크로하고 언어 표준을 아프게하지 않습니다
참고 URL : https://stackoverflow.com/questions/9147636/qt-private-slots-what-is-this
반응형
'ProgramingTip' 카테고리의 다른 글
이것은 JVM 버그입니까 아니면 "예상 된 동작"입니까? (0) | 2020.11.02 |
---|---|
브라우저 간 북마크 / 즐겨 찾기에 추가 JavaScript (0) | 2020.11.02 |
Node.js + express.js + passport.js : 서버 재시작 사이에 인증 유지 (0) | 2020.11.02 |
필요한에 배경을 추가해야합니까? (0) | 2020.11.02 |
C #의 암호 (0) | 2020.11.02 |