运算符 -> 或 ->* 应用于 "MySharedPtr<TestClass>" 而不是指针类型
时间: 2024-04-29 07:25:28 浏览: 12
运算符 -> 或 ->* 只能应用于指针类型,而 MySharedPtr<TestClass> 不是指针类型。MySharedPtr 是一个智能指针,它封装了指向 TestClass 对象的指针,并提供了自动内存管理功能。如果想要访问 TestClass 对象的成员变量或成员函数,应该使用智能指针提供的成员访问操作符 -> 或 *,而不是运算符 -> 或 ->*。例如:
```
MySharedPtr<TestClass> ptr(new TestClass);
ptr->memberFunction(); // 访问 TestClass 对象的成员函数
(*ptr).memberVariable = 10; // 访问 TestClass 对象的成员变量
```
相关问题
运算符->应用于“cv::Mat”而不是指针类型
这个错误通常是因为运算符->被错误地应用于cv::Mat对象,而不是指向对象的指针类型。
在C++中,运算符->通常用于指向对象的指针类型,而cv::Mat是一个类对象,不是指针类型。因此,当你想要访问cv::Mat对象的成员变量或成员函数时,应该使用点运算符(.)而不是箭头运算符(->)。
例如,当你想要访问cv::Mat对象的rows成员变量时,应该使用以下方式:
```cpp
cv::Mat img;
int rows = img.rows;
```
而不是以下方式:
```cpp
cv::Mat* img = new cv::Mat;
int rows = img->rows; // 错误的做法!
```
如果你确实需要使用指针类型访问cv::Mat对象,可以使用指针类型的智能指针(std::shared_ptr或std::unique_ptr)。
例如,使用std::shared_ptr访问cv::Mat对象的rows成员变量的方式如下:
```cpp
std::shared_ptr<cv::Mat> img = std::make_shared<cv::Mat>();
int rows = img->rows;
```
总之,避免在cv::Mat对象上使用箭头运算符(->)。
list->data[list->size++] = *vertex;
这段代码是将指针 vertex 指向的数据添加到一个数组中,该数组存储在一个结构体 list 中。具体来说,`list->data` 是指向数组首元素的指针,`list->size` 表示当前数组中已经存储的元素个数。代码中使用了后置自增运算符 `++`,表示先使用 `list->size` 的值,然后再将其加 1。因此,这行代码的作用是将 vertex 指向的数据存储到数组的下一个位置,并更新数组大小。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.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)