【发布时间】:2016-06-14 19:07:43
【问题描述】:
在我正在处理的一个程序中,我在 main 中声明了一个向量。我有两个使用向量的函数:一个 int 函数和一个标准的 void 'print' 函数。我试图在 void 函数中使用函数指针(指向 int 函数),但我得到了向量尚未声明的错误,即使它在 main.xml 中也是如此。我尝试在 main 之外声明向量,并且该函数运行良好,但我对将其保留在 main 之外犹豫不决。我想知道当在 main 中声明时,是否有某种方法可以在 void 函数中使用向量。这是我要问的一些示例代码:
// Example program
#include <iostream>
#include <vector>
using namespace std;
int returnSquare(vector<int>& numbers);
void print(int (*squarePtr)(vector<int>&));
int (*squarePtr)(vector<int>&);
int main()
{
vector<int> v(1);
squarePtr = &returnSquare;
for(int i = 0; i < v.size(); i++)
{
v.at(i) = i * 25;
cout << v.at(i) << " ";
}
print(squarePtr);
return 0;
}
int returnSquare(vector<int>& numbers)
{
int product = 0;
for(int i = 0; i < numbers.size(); i++)
{
product = numbers.at(i) * numbers.at(i);
}
return product;
}
void print(int (*squarePtr)(vector<int>&))
{
int answer = (*squarePtr)(v);
cout << answer << endl;
}
【问题讨论】:
标签: c++ pointers vector function-pointers