尝试创建嵌套类并访问其中的函数时出现错误。我已经尝试修复了几个小时,但没有成功。
错误:无效使用了“类sqlInterface :: connectToSQL” fhm.connectToSQL.connect();
这是我的代码:
sqlTest.cpp:
ide:AddAPI(...)
mySQLinterface.h:
{}
mySQLinterface.cpp:
#include <stdlib.h>
#include <iostream>
#include "mySQLinterface.h"
sqlInterface fhm;
int main(int argc, char const *argv[])
{
fhm.connectToSQL.connect();
return 0;
}
答案 0 :(得分:1)
您正在尝试访问没有实例的嵌套类的成员函数。
将一个实例添加到您的课程中,例如connectToSQL connection
:
class sqlInterface {
public:
class connectToSQL{
public:
void connect(void);
};
// Add an instance
connectToSQL connection;
};
现在您可以像这样调用成员函数:
// fhm.connection is an object on which you can call member functions:
fhm.connection.connect();
答案 1 :(得分:1)
connectToSQL
是一个类类型。它具有一个名为connect
的非静态成员函数。由于它是一个非静态成员函数,因此需要一个connectToSQL
实例才能调用该函数。那是
fhm.connectToSQL.connect();
需要变得像
sqlInterface::connectToSQL{}.connect();
但这不是很有帮助。您可以制作connect
static
,然后将其命名为
fhm.connectToSQL::connect();
但是那看起来仍然不正确。如果你想
fhm.connectToSQL.connect();
然后
connectToSQL
需要成为sqlInterface
的成员变量。如果您将sqlInterface
更改为
class sqlInterface {
public:
class connectToSQL_{
public:
void connect(void);
};
connectToSQL_ connectToSQL;
};
然后
fhm.connectToSQL.connect();
现在可以使用。