每次编译function.cpp文件时都会收到错误,说明库存和newStock未在此范围内声明。我正在尝试在向量中使用结构。谢谢你的帮助。
这是main.cpp文件
#include <fstream>
#include <iostream>
#include <string>
#include <ctime>
#include <cstdlib>
#include <sstream>
#include <vector>
using namespace std;
struct Stocks
{
int one;
int two;
int three;
};
vector<Stocks> portfolio;
#include "testProject2.h"
int main()
{
buyStock(portfolio);
}
这是头文件。
#include <iostream>
void buyStock(vector<Stocks>& Portfolios);
这是function.cpp文件
#include <iostream>
#include <vector>
#include "testProject2.h"
void buyStock(vector<Stocks>& Portfolios)
{
Stocks newStock;
newStock{1,2,3};
Portfolios.push_back(newStock);
}
答案 0 :(得分:1)
您的function.cpp文件无法知道Stocks结构是什么。在头文件中定义它:
struct Stocks {
int one;
int two;
int three;
};
从main.cpp中删除它的定义。
同样在头文件中,您需要
#include <vector>
并将vector参数称为std::vector<Stocks> &Portfolios
(优于using namespace std;
)
您的初始化语法newstock{1,2,3}
看起来也不正确。
答案 1 :(得分:0)
您在头文件中使用vector
而未定义它。
尝试将头文件更改为:
#include <vector>
#include <Stocks.h> // name of .h file where Stocks is defined
void buyStock(std::vector<Stocks>& Portfolios);
// OR
using namespace std::vector;
void buyStock(vector<Stocks>& Portfolios);