QNetworkAccessManager * const* 和 QNetworkAccessManager * 有什么区别
时间: 2023-07-19 20:46:29 浏览: 94
QNetworkAccessManager * const* 是一个指向 QNetworkAccessManager 指针的常量指针,也就是说,这个指针本身是不可修改的,但是指针所指向的 QNetworkAccessManager 指针的值是可以修改的。例如:
```c++
QNetworkAccessManager *manager = new QNetworkAccessManager();
QNetworkAccessManager * const* ptr = &manager;
*ptr = new QNetworkAccessManager(); // 合法,可以修改指针所指向的值
ptr = nullptr; // 非法,指针本身是常量指针,不能修改
```
在上面的例子中,我们首先创建了一个 QNetworkAccessManager 对象,并定义了一个指向 QNetworkAccessManager 指针的常量指针 ptr,并将其指向 manager。然后,我们通过指针 ptr 修改了 manager 的值,这是合法的。但是,我们不能修改指针 ptr 本身的值,因为它是常量指针。
而 QNetworkAccessManager * 则是一个指向 QNetworkAccessManager 对象的指针,它本身和它所指向的对象的值都可以被修改。例如:
```c++
QNetworkAccessManager *manager = new QNetworkAccessManager();
manager = new QNetworkAccessManager(); // 合法,可以修改指针的值
*manager = QNetworkAccessManager(); // 合法,可以修改指针所指向的对象的值
```
在上面的例子中,我们首先创建了一个 QNetworkAccessManager 对象,并定义了一个指向 QNetworkAccessManager 对象的指针 manager,并将其指向该对象。然后,我们通过指针 manager 修改了它的值,即将其指向另一个 QNetworkAccessManager 对象,这是合法的。同时,我们也可以通过指针 manager 修改它所指向的对象的值,即将该对象赋值为另一个 QNetworkAccessManager 对象,这也是合法的。
阅读全文