Ну, Вот код C++ У меня есть здесь и не могу скомпилироватьНевозможно преобразовать параметр 1 из «класса *» до «двойной []»
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
const int n = 900;
class City{
string name;
double area;
int count, roads;
public:
City() {}
City(string a, double b, int c, int d) { a=name; b=area; c=count; d=roads;}
string getname() {return name;}
double getarea() {return area;}
int getcount() {return count;}
int getroads() {return roads;}
friend ostream& operator << (ostream& , City&);
friend istream& operator >> (istream& , City&);
};
ostream& operator << (ostream& out, City& a) {
out<<"name "<<a.name<<", area "<<a.area<<", count "<<a.count<< ", roads "<<a.roads<<endl;
return out;
}
istream& operator >> (istream& in, City& a) {
in>>a.name>>a.area>>a.count>>a.roads;
return in;
}
void fill(int arr[], int size){
ifstream ifs("cities.txt.");
for (int i=0;i<size;i++)
ifs>>arr[i];
}
void func(City* arr){
ofstream ofs("density.out");
for(int i=0;i<n;i++){
if(arr[i].getcount()/arr[i].getarea()>1000)
ofs<<arr[i];
}
}
int main(){
City* hm;
hm = new City[n];
fill(hm, n);
func(hm);
system ("pause");
return 0;
}
Здесь ошибка я получаю во время компиляции:
ошибка C2664: «заполнить»: не удается преобразовать параметр 1 из «Город *» до 'Int []
как-то я вижу, что он говорит что-то не так с класса «Город * " И в t [], но не может понять. Я меняю 'int' на двойную, но ту же самую проблему. Это проблема, в противном случае это просто простая функция заполнения массива из файла. любая идея, что в этом плохого?
Итак, как бы
пустота заполнения (Город & обр, внутр размер) «s тело хотели бы?
Я думаю, что фраза 'void fill (City ...) 's body хотела бы?' Немного запутанна, нет? –