[Error] base operand of '->' has non-pointer type 'Account'
时间: 2023-06-10 09:04:09 浏览: 252
这个错误通常是由于将结构体或类名(或者实例化的对象)用“.”操作符而不是“->”操作符访问成员变量或成员函数引起的。请检查你的代码,看看你是否正确使用了“->”来访问Account结构体的成员变量或成员函数。另外,也需要确保你已经按照正确的方式创建了Account的实例。如果还有疑问,可以提供更多的上下文和源代码以便更好地给出答案。
相关问题
base operand of ‘->’ has non-pointer type ‘Employee’
这个错误提示一般出现在你使用了箭头操作符 "->",但操作符左边的变量不是一个指针类型。
比如说,如果你有一个 Employee 类型的对象 emp,你可以使用 "." 操作符来访问它的成员变量和成员函数,如下所示:
```
Employee emp;
emp.name = "张三";
emp.age = 30;
emp.printInfo();
```
但如果你有一个指向 Employee 对象的指针 empPtr,你需要使用箭头操作符 "->" 来访问它的成员变量和成员函数,如下所示:
```
Employee *empPtr = new Employee();
empPtr->name = "张三";
empPtr->age = 30;
empPtr->printInfo();
```
请注意,箭头操作符左边的变量必须是指针类型。如果不是指针类型,就会出现上述的编译错误提示。
base operand of '->' has non-pointer type 'std::vector<Wares>
这个错误通常是因为你尝试在一个非指针对象上使用箭头运算符 "->"。箭头运算符只能用于指针对象,而std::vector<Wares>不是指针类型,它是一个容器类模板,因此不能使用箭头运算符。
如果你想访问std::vector<Wares>中的元素,可以使用下标运算符 "[]" 或者迭代器。例如,如果你想访问第一个元素,可以使用以下语句:
```
std::vector<Wares> myVector;
Wares firstElement = myVector[0]; // 使用下标运算符访问第一个元素
```
或者使用迭代器:
```
std::vector<Wares> myVector;
std::vector<Wares>::iterator it = myVector.begin(); // 获取迭代器指向第一个元素
Wares firstElement = *it; // 使用解引用运算符访问第一个元素
```
希望能帮到你!