错误 C2228:'.push_back'左侧必须具有类/结构/联合
error C2228: left of '.push_back' must have class/struct/union
刚开始学习向量,但我在VC++2010中遇到了这个错误,并一直停留在那里,请帮忙。。。。
"错误C2228:'.push_back'的左侧必须具有类/结构/联合"
#include <vector>
#include <iostream>
#include <limits>
using namespace std;
int main()
{
vector<double> myVector();
double temp = 30.0;
myVector.push_back(temp); //this line makes error ?? why??
return 0;
}
vector<double> myVector();
这一行看起来像是函数返回向量的正向声明。
它应该只是
vector<double> myVector;
这句话错了:
vector<double> myVector();
或者编译器将myVector视为返回vector值的函数!!
你应该定义这样一个向量:
vector<double> myVector
您的问题是,您声明的是一个函数而不是向量,这被称为最麻烦的解析。您当前拥有的内容被解释为一个函数的前向声明,该函数不接受返回vector<double>
:的参数
vector<double> myVector();
^^
如果你只想使用默认的构造函数,它需要是:
vector<double> myVector ;
与您当前的问题无关,我建议不要使用using namespace std;
。我意识到它无处不在,它节省了一些打字,但从长远来看,它会给你带来问题。
相关文章:
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 如何将结构/联合数组的成员传递到函数中
- error dllimport 函数的定义不允许在一个特定的联合中,而其他类、结构和联合将按预期导出
- 为什么继承的结构成员在联合中无法访问?
- 在向量 C++14(无限制联合)的结构内的联合中创建和存储字符串
- 尝试初始化结构内的联合时出错
- 嵌套在联合中的结构嵌套在 C 中的结构中
- 成员引用基类型 'char' 不是 C++ 中的结构或联合
- 结构内部结构的联合 - 混合 C 和 C++
- 联合初始化中的结构
- 成员引用基类型不是结构或联合
- 在结构中使用联合的目的是什么?
- 错误 C2228 左侧'.setDay'必须具有类/结构/联合
- 如何从平面缓冲区中反序列化联合结构的 void* 值的大小
- 联合结构 C# - 等效或等于
- 将C++联合结构转换为 VB6
- C ++:联合 -> 结构,解释?
- 编译器特定联合结构实现的标准替代方案
- 具有构造函数的类的匿名联合/结构
- 联合结构有什么作用