1
class Bot{
private:
       char *serveradr;
public:
       char *get_serveradr(); 
       char set_serveradr(char *server);
       void servcon();                
       };

char Bot::set_serveradr(char *server)
 {
 serveradr = server;
 }

 char *Bot::get_serveradr()
 {
 return serveradr;


 void servcon()
 {
  sin.sin_addr.s_addr           = inet_addr(this.get_serveradr());

  }

非メンバー関数での`this'の無効な使用

そのような質問で申し訳ありませんが、私はこれがどのように行われるべきかを検索して知っていますが、私が間違っていることはわかりません。

4

2 に答える 2

5

メンバー関数定義の名前を完全に修飾する必要があります。

void Bot::servcon()
{
    sin.sin_addr.s_addr = inet_addr(this->get_serveradr()); // Note use of ->

}

thisそれ以外の場合は、ポインターを持たない自立関数として扱われます。

これはC++であるため、のstd::string代わりにを使用してchar*ください。メソッドに渡される引数は、エラーが発生しやすい(そして誰がそれを実行する責任があるのか​​)Bot::set_serveradr()長生きする必要があります。usingメソッドにアクセスできます。Botdelete[]char*std::string::c_str()

于 2012-06-03T21:33:14.460 に答える
1

交換する必要があります

    void servcon()
    {
       ... 
    }

    void Bot::servcon()
    {
       ... 
    }

他のメンバー関数定義で行ったのと同じように

于 2012-06-03T21:34:43.383 に答える