2012-05-04 22 views
0

こんにちは私はJavaとC#をやりましたが、最近はLinux環境でC/C++でモジュールを作成しました。私はC++で簡単なUDPサーバを作ることに決めました。これは新しいものですが、コーディングに関しては全く新しい初心者ではありません。私はいくつかの例として見ていると、すべて、この1つのラインから離れて動作するようです:ソケットを関数として使用することはできません

SOCKET socket = socket(AF_INET, SOCK_DGRAM, 0); 

私は、NetBeansでこれをコンパイルするときには、このエラーメッセージを思い付く:

classUDPServer.cpp: In constructor 'UDPServer::UDPServer()': 
classUDPServer.cpp:35: error: '((UDPServer*)this)->UDPServer::socket' cannot be used as a function 
    make[2]: *** [build/Debug/MinGW-Windows/classUDPServer.o] Error 1 
    make[1]: *** [.build-conf] Error 2 
    make: *** [.build-impl] Error 2 

私はWINSOCK2の両方を持っています.hとiostreamが含まれています。

誰でもこのエラーで私を助けることができますか?

ありがとうございます!

答えて

5

変数の名前を関数と同じように指定しないでください。機能socketは、グローバル名前空間で検索されるように:)::

SOCKET socket = ::socket(AF_INET, SOCK_DGRAM, 0); 
+0

ヤーは、私が持っているあなたに感謝@クリスが指摘するように

SOCKET my_socket = socket(AF_INET, SOCK_DGRAM, 0); 

また、あなたは、スコープ解決演算子を(使用することができますちょうど私自身を見ました!私は少しばかげて知っている感じ!あなたの迅速な対応に感謝します。 :) – geekman92

+2

これは単にスコープの問題であることを指摘したいと思います。 'SOCKET socket = :: socket(AF_INET、SOCK_DGRAM、0);'を使うと、うまく動作し、目的の変数名を使うことができます。 – chris

+0

@chris nice one、私の答えを編集して追加しました。ありがとう! – mfontanini

関連する問題