2012-06-03 26 views
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()); 

    } 

无效使用'这个非成员函数C++类这个 - >错误

对不起,这样的问题,但我已经搜查,知道这是应该怎么做但我不确定我做错了什么。

回答

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()方法的参数必须超过Bot,这很容易出错(谁负责delete[]?)。您可以使用std::string::c_str()方法访问char*

+0

感谢hmjd的快速答复,但这个 - >,这样的: : 和这个。都会导致相同的错误。 –

+0

'get_serveradr()'缺少'}'。编译罚款,当我做了这个变化(加上从'set_serveradr()')返回一个值与VS2010和http://ideone.com/NMxaa – hmjd

+0

嗨,我一定已经编辑出来,你和mathematician1975哪里都感谢您的快速回复:)。感谢您的建议虐待std ::字符串 –

1

您需要更换

void servcon() 
    { 
     ... 
    } 

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

就像你与其他成员函数来完成定义

+0

我一直盯着一个多小时的代码,然后我错过了。谢谢! –

+0

您还需要使用this->而不是这个。就像这里的其他答案一样,否则你仍然会得到一个错误。 – mathematician1975

相关问题