3 智能感知:声明与"<error-type>Airport::getDetails(std::string)"不兼容

3 IntelliSense: declaration is incompatible with "<error-type> Airport::getDetails(std::string)"

本文关键字:getDetails std string 不兼容 Airport gt 感知 智能 lt error-type 声明      更新时间:2023-10-16

收到此错误

我知道这与声明和定义不匹配有关,但我似乎不能把我的手指放在上面。

任何帮助都将是感激的:)

IntelliSense: declaration is incompatible with "<error-type> 
Airport::getDetails(std::string)" (declared at line 16 of "z:documentsvisual studio 2010projectsoo_cwoo_cwAirport.h") 
z:documentsvisual studio 2010projectsoo_cwoo_cwairport.cpp    50  22  OO_CW

这是我的头文件和cpp文件

#pragma once
#include <string>
#include "std_lib_facilities.h"

class Airport
{
public:
Airport();
~Airport(void);
//Modifiers
void setName(string);
void addConnection(string,double,double);
void setTax(double);
//Accessors
string getName();
connections getDetails(string) const ;
double getTax();
private:
string name;
Vector<connections> destinations;
double tax;
};

cpp

#include "Airport.h"
#include <string>
#include "std_lib_facilities.h"
using namespace std;
struct connections {
    string destName;
    double price;
    double time;
};
Airport::Airport()
{
name = "";
tax = 0.0;
};


Airport::~Airport(void)
{
};
void Airport::setName(string airportName){
Airport::name = airportName;
}
void Airport::setTax(double airportTax){
tax = airportTax;
}
void Airport::addConnection(string conName, double conPrice, double conTime){
connections newConnection;
newConnection.destName = conName;
newConnection.price = conPrice;
newConnection.time = conTime;
destinations.push_back(newConnection);
}
string Airport::getName(){
return name;
}
double Airport::getTax(){
return tax;
}
connections Airport::getDetails(string reqName) const {
for(int i =0;i<destinations.size();i++){
    if(destinations[i].destName==reqName){
        return destinations[i];
    }
}
}
  1. 你必须把connections定义放在头文件中Airport类定义的上面。
  2. 你的函数Airport::getDetails()必须返回一些微不足道的情况,其中destinations.size() == 0,(见下面的代码)。
  3. 是否有特殊的原因不使用std::vector代替Vector ?

connections Airport::getDetails(string reqName) const {
  for (int i = 0; i<destinations.size(); i++){
    if (destinations[i].destName == reqName){
      return destinations[i];
    }
  }
  return connections{"", 0.0, 0.0};
}

您在"Airport.h"中使用connections之前没有声明它。