extern QSqlDatabase db可以写在类内吗
时间: 2024-04-19 07:30:21 浏览: 14
是的,extern QSqlDatabase db可以写在类的内部。在类的内部声明extern变量是合法的,它告诉编译器这个变量是在其他地方定义的。在类的头文件中声明extern变量,然后在类的实现文件中定义该变量即可。这样,在整个类中都可以使用这个extern变量。注意,这个变量是全局变量,它不属于类的任何对象。
相关问题
那怎么将QSqlDatabase db设置为类内静态成员变量,static extern QSqlDatabase db;这么写还是报错
在C++中,extern关键字用于声明一个外部全局变量,而静态成员变量是属于类的,不需要使用extern关键字来声明。
如果你想将QSqlDatabase db设置为类的静态成员变量,可以在类的声明中使用静态关键字来定义它,并在类的实现文件中进行初始化。以下是一个示例:
```cpp
// MyClass.h
#include <QSqlDatabase>
class MyClass {
public:
static QSqlDatabase db; // 静态成员变量的声明
// ...
};
// MyClass.cpp
#include "MyClass.h"
QSqlDatabase MyClass::db = QSqlDatabase(); // 静态成员变量的初始化
// ...
```
这样,就将QSqlDatabase db设置为了MyClass类的静态成员变量,可以在整个类中使用它。在MyClass.cpp文件中进行初始化,确保静态成员变量被正确初始化。
可以把一个类extern c吗
在 C++ 中,extern "C" 告诉编译器使用 C 语言的函数命名和调用约定,这样可以使得 C++ 代码可以与 C 语言代码进行互操作。但是对于一个类,使用 extern "C" 是无效的,因为类不仅仅包含函数,还包含了数据成员和虚函数表等信息,而这些信息在 C 语言中是没有对应的概念的。因此,不能把一个类声明为 extern "C"。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)