C++类this->错误

1 c++ oop class

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());

  }
Run Code Online (Sandbox Code Playgroud)

在非成员函数中无效使用"this"

很抱歉这样的问题,但我已经搜索过并知道应该怎么做,但我不确定我做错了什么.

hmj*_*mjd 5

您需要完全限定成员函数定义的名称:

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

}
Run Code Online (Sandbox Code Playgroud)

否则,它被视为没有this指针的独立功能.

因为这是C++,所以使用a std::string而不是a char*.传递给该Bot::set_serveradr()方法的参数必须比Bot哪个容易出错(以及谁负责delete[]它?).您可以访问char*使用std::string::c_str()方法.