私はまだC++のnoobieですので、まだデバッグに熟練していません。このコンパイルエラーを修正する方法を理解しようとしています。C++コンパイラエラーのデバッグ
CruiseShip.cpp:11: error: expected ‘)’ before ‘n’
CruiseShip.cpp
#include "CruiseShip.h"
#include "Ship.h"
#include <iostream>
using namespace std;
Ship s;
int passengers;
CruiseShip(string n, string y, int p) : Ship(n,y)
{
passengers=p;
}
void print()
{
cout<<"Name: "<<s.getName()<<"\nMaximum passengers:"<<passengers<<endl;
cout<<"-------------------------"<<endl;
}
CruiseShip.h
#ifndef CRUISESHIP_H
#define CRUISESHIP_H
#include "Ship.h"
#include <string>
using namespace std;
//class Ship;
class CruiseShip:public Ship{
private:
int passengers;
Ship::Ship s;
public:
CruiseShip(string, string, int);
virtual void print();
};
#endif
Ship.h
#ifndef SHIP_H
#define SHIP_H
#include <string>
using namespace std;
class Ship{
private:
string name;
string built;
public:
Ship();
Ship(string, string);
string getName();
string getBuilt();
virtual void print();
};
#endif
あなたがそれらを定義するときは、クラス
CruiseShip
の一環として
print
と
CruiseShip
(コンストラクタ)を宣言しない
1および2:
CruiseShip.cppで: 'CruiseShip :: CruiseShip(string n、string y、int p)...'。また、そこに 's'と'乗客 'を再宣言する必要はありません。 –
'Ship :: Ship s;'が正しくないように見えます。おそらくあなたは '船s 'を必要とするでしょう。 – NathanOliver
そして、 'Ship'から継承している場合、本当に' s'メンバー変数が必要ですか? –