C++ 错误:没有已知的转换

C++ 错误:没有已知的转换,c++,C++,这就是我目前拥有的,由我的教授提供的扫描仪 #include "Similarity.h" #include "Scanner.h" using namespace std; int Similarity::readData(Scanner inFile){ int similarityInputSize; vector< vector<int> > containingVector; bool nextValueFound; simil

这就是我目前拥有的,由我的教授提供的扫描仪

#include "Similarity.h"
#include "Scanner.h"
using namespace std;

int Similarity::readData(Scanner inFile){
    int similarityInputSize;
    vector< vector<int> > containingVector;
    bool nextValueFound;
    similarityInputSize = inFile.nextInt();
    int lineCount = 0;
    while(inFile.hasNext()){
            containingVector.push_back(vector<int>());
            for(int i = 0; i < similarityInputSize; i++){
                    containingVector[lineCount].push_back(inFile.nextInt());
            }
            lineCount++;
    }
    for(int i = 0; i < containingVector.size(); i++){
            for(int j = 0; j < similarityInputSize; i++){
                    cout << containingVector[i][j] << " ";
            }
            cout << endl;
    }
    return 0;
 }
你能告诉我的任何事情都会有帮助


提前谢谢

我猜扫描仪不应该被复制。语法:

int Similarity::readData(Scanner inFile){
意味着扫描器将通过扫描器的复制构造函数从传入变量复制到此方法接收的变量

扫描仪听起来像是在引擎盖下处理信息流的东西。iostreams库中的流执行以下操作

我不完全清楚您是如何尝试通过引用传递的,但您需要将此文件和相应的.h文件中的签名更改为:

int Similarity::readData(Scanner& inFile){

你应该没问题
readData
现在接收对传入文件的引用。这本质上是传入对象的别名——您对它所做的任何操作都将反映在传入的对象上。

我猜Scanner不应该被复制。语法:

int Similarity::readData(Scanner inFile){
意味着扫描器将通过扫描器的复制构造函数从传入变量复制到此方法接收的变量

扫描仪听起来像是在引擎盖下处理信息流的东西。iostreams库中的流执行以下操作

我不完全清楚您是如何尝试通过引用传递的,但您需要将此文件和相应的.h文件中的签名更改为:

int Similarity::readData(Scanner& inFile){

你应该没问题
readData
现在接收对传入文件的引用。这本质上是传入对象的别名——您对它所做的任何操作都将反映在传入的对象上。

您是如何调用代码的?您是否更改了readData的签名或调用代码?您知道扫描仪是否有副本构造函数(当前您正在告诉它创建副本)。
Scanner
似乎有一个
fstream
成员,这意味着它无法复制。你可能想使用引用。你是如何调用代码的?您是否更改了readData的签名或调用代码?您知道扫描仪是否有副本构造函数(当前您正在告诉它创建副本)。
Scanner
似乎有一个
fstream
成员,这意味着它无法复制。你很有可能想用一个推荐人。你是一个美丽的人。工作很有魅力。你是一个美丽的人。工作得很有魅力。