私は、次のエラーが含ま++コードこのCを持っている:1。readBinaryFile
はこのスコープで宣言されていなかった
2. ret
はこのスコープで宣言されていなかった
3.このスコープではrecursiveBinarySearch
は宣言されていません。
なぜ私はこのエラーを取得しています:このスコープで宣言されていない
これらのエラーがなぜ発生しているのか理解してもらえますか?
ありがとうございます。あなたの.cppファイルで
BinarySearch.h
#ifndef BINARYSEARCH_H
#define BINARYSEARCH_H
using namespace std;
class BinarySearch
{
public:
char readBinaryFile(char *fileName);
int recursiveBinarySearch(int start_index, int end_index, int targetValue);
};
#endif
BinarySearch.cpp
#include<iostream>
#include<fstream>
#include<cstdlib>
#include<vector>
using namespace std;
//vector to dynamically store large number of values...
vector<unsigned int> ret;
//variable to count the number of comparisions...
int n=0;
//method to read file....
void readBinaryFile(char* fileName)
{
ifstream read(fileName);
unsigned int current;
if(read!=NULL)
while (read>>current) {
ret.push_back(current);
}
}
//recursive binary search method
void recursiveBinarySearch(int start_index, int end_index, int targetValue)
{
int mid = (start_index+end_index)/2;
if(start_index>end_index)
{
cout<<n<<":-"<<endl;
return ;
}
if(ret.at(mid)==targetValue)
{
n++;
cout<<n<<":"<<mid<<endl;
return ;
}
else if(ret.at(mid)<targetValue)
{
n=n+2;//upto here two comparisions have been made..so adding two
start_index=mid+1;
return recursiveBinarySearch(start_index,end_index,targetValue) ;
}
else
{
n=n+2;
end_index=mid-1;
return recursiveBinarySearch(start_index,end_index,targetValue) ;
}
}
BinarySearch_test.cpp
#include "BinarySearch.h"
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
char a[] ="dataarray.bin";
//assuming that all integers in file are already in sorted order
readBinaryFile(a);
int targetValue;
cout<<"Enter a Value to search:";
cin>>targetValue;
recursiveBinarySearch(0,ret.size()-1,targetValue) ;
return 0;
}
binarySearch.cppには.hファイルが含まれていません – AndyG
ようこそ!あなたは[良いC + +の本](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)を使用することができるように聞こえます – NathanOliver
@AndyG私はここにコードにそれを含めませんでした事故によって元のコードにはそれがあります。 –