前輩們好:
我最近在研究一個開源代碼,遇到如下問題:
C++ 頭檔案中定義類A,并宣告APrivate. 然后在相應的源檔案中對APrivate進行定義,請問有什么意義?
代碼具體如下:
qSlicerUGSllshMarkupsModule.h檔案:
#ifndef __qSlicerUGSllshMarkupsModule_h
#define __qSlicerUGSllshMarkupsModule_h
class qSlicerUGSllshMarkupsModulePrivate;
class Q_SLICER_QTMODULES_MARKUPS_EXPORT qSlicerUGSllshMarkupsModule:
public qSlicerLoadableModule
{
QScopedPointer<qSlicerUGSllshMarkupsModulePrivate> d_ptr;
};
#endif
===================================================================================
qSlicerUGSllshMarkupsModule.cpp檔案部分代碼:
class qSlicerUGSllshMarkupsModulePrivate
{
public:
qSlicerUGSllshMarkupsModulePrivate();
};
為什么要這樣做呢?感覺就是多此一舉啊~
還請前輩們指教,這其中的具體含義,不勝感激。
uj5u.com熱心網友回復:
class qSlicerUGSllshMarkupsModulePrivate;宣告就是前向參考嘛。
uj5u.com熱心網友回復:
class qSlicerUGSllshMarkupsModulePrivate;就是前向參考宣告,否則
QScopedPointer<qSlicerUGSllshMarkupsModulePrivate> d_ptr;
編譯器會不認識qSlicerUGSllshMarkupsModulePrivate
uj5u.com熱心網友回復:
非常感謝。前向參考這一點能夠確定,有沒有其他的作用,比如說指標的作用域?比如說這種方式前向參考可以提高代碼(指標)安全?uj5u.com熱心網友回復:
大牛你好,能不能告訴一下現在那個跟蹤演算法c語言版本的跟蹤效果好,跟蹤框128*128幀頻200hz以上uj5u.com熱心網友回復:
哥們想了解一下你的聯系方式,求交流uj5u.com熱心網友回復:
向前宣告恰恰對指標參考的安全有負面作用。。。
向前宣告一般是從代碼的耦合性這個角度出發才去使用的,用不好的話,容易產生空指標。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/37673.html
標籤:基礎類
