调试C++编译器错误

Debugging C++ compiler error

本文关键字:错误 编译器 C++ 调试      更新时间:2023-10-16

我在c++方面还是个新手,所以我还不擅长调试。只是想弄清楚如何修复这个编译错误。

CruiseShip.cpp:11:错误:在"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

您有3个错误:

1和2。在定义printCruiseShip(构造函数)时,不会将它们声明为类CruiseShip的一部分。您需要:

CruiseShip::CruiseShip(string n, string y, int p) : Ship(n,y) {
virtual void CruiseShip::print() { 

3,你没有名称空间Ship,所以这是不必要的:

 Ship::Ship s; // This only needs to be Ship s <- NameSpace::ObjectType nameOfObject;

之后,它将编译http://ideone.com/wJ6mPO.但是,它不会链接,因为您对所有尚未定义的函数都有未定义的引用。