Я получил «Ожидаемое первичное выражение перед const» и потратил некоторое время, пытаясь найти проблему, но, похоже, не могу ее найти … Я сузил ее до файла .h и конструкторов. Вот код Любая помощь будет оценена.
#ifndef VEHICLE_H
#define VEHICLE_H
#include <iostream>
using namespace std;
class Vehicle{
protected:
char *name;
static ostream *out;
public:
Vehicle();
Vehicle(string n);
Vehicle (const Vehicle & b);
~Vehicle();
Vehicle& operater =(const Vehicle &b);
virtual void print() = 0;
virtual void read() = 0;
};
#endif // VEHICLE_H
~
Конструкторы в отдельном файле.
#include "vehicle.h"
Vehicle :: Vehicle(){
name = "";
}
Vehicle :: Vehicle(string n){
name = n.c_str();
}
Vehicle :: Vehicle(const Vehicle & a){
int len = strlen(a.name)+ 1;
name = new char[len];
strcpy(name,a.name);
}
Vehicle :: Vehicle &operater = (const Vehicle &b){
if(this = &b){
return *this;
}
int len = strlen(a.name)+ 1;
name = new char[len];
strcpy(name,a.name);
return *this;
}
Vehicle:: ~Vehicle(){
delete [] name;
}
Еще раз спасибо.
В своем классе транспортных средств вы написали оператор неправильно:
Vehicle& operater =(const Vehicle &b);
редактировать: вы пишете это неправильно каждый раз.
Других решений пока нет …