C++ 为什么说我定义的 函数 是 非法 的
我在C++中新添加个类,类的类型是GenericClass类名CClient我在类中定义函数,“intHaveName(CStringcCname)”代码如下classC...
我在C++中新添加个类,类的类型是Generic Class类名CClient
我在类中定义函数,“int HaveName(CString cCname)”
代码如下
class CClient
{
public:
CClient();
virtual ~CClient();
int HaveName(CString cCname);
};
然后在CClient中添加此代码,调试运行后发现有一错误,提示为“‘HaveName’:local function definitions are illegal”
为什么说我定义的函数是非法的
我是按书上要求的函数名啊。
代码如下:
CClient::CClient()
{
int CClient::HaveName(CString cCname)
{
//连接数据库
ADOConn m_AdoConn;
m_AdoConn.OnInitADOConn();
//设置SELECT语句
_bstr_t vSQL;
vSQL="SELECT * FROM Client WHERE Cname=" + cCname+ "";
//执行SELECT句语
_RecordsetPtr m_pRecordset;
m_pRecordset=m_AdoConn.GetRecordSet(vSQL);
//返回各列的值
if (m_pRecordset->adoEOF==1)
return -1;
else
return 1;
//断开数据库的连接
m_AdoConn.ExitConnect();
}
}
CClient::~CClient()
{
}
你刚说
“你把HaveName的实现放到了构造函数中了
把它从构造函数CClient中抽出来单独成为一个函数。”
我把那实行的放在构造函数中了
代码如下:
class CClient
{
public:
CClient();
virtual ~CClient();
};
int CClient::HaveName(CString cCname)
{
//连接数据库
ADOConn m_AdoConn;
m_AdoConn.OnInitADOConn();
//设置SELECT语句
_bstr_t vSQL;
vSQL="SELECT * FROM Client WHERE Cname=" + cCname+ "";
//执行SELECT句语
_RecordsetPtr m_pRecordset;
m_pRecordset=m_AdoConn.GetRecordSet(vSQL);
//返回各列的值
if (m_pRecordset->adoEOF==1)
return -1;
else
return 1;
//断开数据库的连接
m_AdoConn.ExitConnect();
} ;
上面的代码放的正确不?
可你的第二句话我就不明白了,请问如何把它从构造函数CClient中抽出来单独成为一个函数
我是新人有很多都不懂,帮忙写下具体的代码吧,很感谢啊。我这也是急着要用的。 展开
我在类中定义函数,“int HaveName(CString cCname)”
代码如下
class CClient
{
public:
CClient();
virtual ~CClient();
int HaveName(CString cCname);
};
然后在CClient中添加此代码,调试运行后发现有一错误,提示为“‘HaveName’:local function definitions are illegal”
为什么说我定义的函数是非法的
我是按书上要求的函数名啊。
代码如下:
CClient::CClient()
{
int CClient::HaveName(CString cCname)
{
//连接数据库
ADOConn m_AdoConn;
m_AdoConn.OnInitADOConn();
//设置SELECT语句
_bstr_t vSQL;
vSQL="SELECT * FROM Client WHERE Cname=" + cCname+ "";
//执行SELECT句语
_RecordsetPtr m_pRecordset;
m_pRecordset=m_AdoConn.GetRecordSet(vSQL);
//返回各列的值
if (m_pRecordset->adoEOF==1)
return -1;
else
return 1;
//断开数据库的连接
m_AdoConn.ExitConnect();
}
}
CClient::~CClient()
{
}
你刚说
“你把HaveName的实现放到了构造函数中了
把它从构造函数CClient中抽出来单独成为一个函数。”
我把那实行的放在构造函数中了
代码如下:
class CClient
{
public:
CClient();
virtual ~CClient();
};
int CClient::HaveName(CString cCname)
{
//连接数据库
ADOConn m_AdoConn;
m_AdoConn.OnInitADOConn();
//设置SELECT语句
_bstr_t vSQL;
vSQL="SELECT * FROM Client WHERE Cname=" + cCname+ "";
//执行SELECT句语
_RecordsetPtr m_pRecordset;
m_pRecordset=m_AdoConn.GetRecordSet(vSQL);
//返回各列的值
if (m_pRecordset->adoEOF==1)
return -1;
else
return 1;
//断开数据库的连接
m_AdoConn.ExitConnect();
} ;
上面的代码放的正确不?
可你的第二句话我就不明白了,请问如何把它从构造函数CClient中抽出来单独成为一个函数
我是新人有很多都不懂,帮忙写下具体的代码吧,很感谢啊。我这也是急着要用的。 展开
2个回答
展开全部
你把HaveName的实现放到了构造函数中了
把它从构造函数CClient中抽出来单独成为一个函数。
class CClient
{
public:
CClient();
virtual ~CClient();
int HaveName(CString cCname); //这里申明函数
};
CClient::CClient()
{
//你原来将HaveName的实现放到这里了,应该放到后面去
}
CClient::~CClient()
{
}
//这里实现函数
int CClient::HaveName(CString cCname)
{
//连接数据库
ADOConn m_AdoConn;
m_AdoConn.OnInitADOConn();
//设置SELECT语句
_bstr_t vSQL;
vSQL="SELECT * FROM Client WHERE Cname=" + cCname+ "";
//执行SELECT句语
_RecordsetPtr m_pRecordset;
m_pRecordset=m_AdoConn.GetRecordSet(vSQL);
//返回各列的值
if (m_pRecordset->adoEOF==1)
return -1;
else
return 1;
//断开数据库的连接
m_AdoConn.ExitConnect();
} ;
把它从构造函数CClient中抽出来单独成为一个函数。
class CClient
{
public:
CClient();
virtual ~CClient();
int HaveName(CString cCname); //这里申明函数
};
CClient::CClient()
{
//你原来将HaveName的实现放到这里了,应该放到后面去
}
CClient::~CClient()
{
}
//这里实现函数
int CClient::HaveName(CString cCname)
{
//连接数据库
ADOConn m_AdoConn;
m_AdoConn.OnInitADOConn();
//设置SELECT语句
_bstr_t vSQL;
vSQL="SELECT * FROM Client WHERE Cname=" + cCname+ "";
//执行SELECT句语
_RecordsetPtr m_pRecordset;
m_pRecordset=m_AdoConn.GetRecordSet(vSQL);
//返回各列的值
if (m_pRecordset->adoEOF==1)
return -1;
else
return 1;
//断开数据库的连接
m_AdoConn.ExitConnect();
} ;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询