2013-09-30 60 views
0

我有這樣的代碼:檢查是否子成員爲NULL

class Connection 
{ 
public: 
    boost::asio::ip::tcp::socket socket_; 
} 

void main() 
{ 
    Connection* session = new Connection(); 
    //for example 
    session->socket_.close() // FATAL ERROR PAGE FAULT 
    // How to check whether child member socket_ is null? if(session->socket_ != NULL) - error : no operator != mathes these operands 
} 

當我嘗試if(session->socket_ != NULL) - 錯誤:沒有運營商= MATHES這些操作數

我使用VS2010

謝謝!

回答

1

socket_不是一個指針,所以沒有操作符被定義爲將它與NULL進行比較。也許你需要使用is_open

+0

感謝您的回答,那麼如何檢查成員是否已初始化? – Romka

+0

正如我在編輯中提到的,也許你的意思是使用is_open。 –

+0

這個函數不是靜態的,因爲我知道,如果成員沒有初始化,我該如何使用它? – Romka