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++,所以使用 astd::string而不是char*. 传递给Bot::set_serveradr()方法的参数必须比Bot容易出错的参数更有效(谁负责delete[]处理它?)。您可以访问char*usingstd::string::c_str()方法。

于 2012-06-03T21:33:14.460 回答
1

你需要更换

    void servcon()
    {
       ... 
    }

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

就像您对其他成员函数定义所做的那样

于 2012-06-03T21:34:43.383 回答