Airport::getDetails(std::string)"-6ren"> Airport::getDetails(std::string)"-收到这个错误 我知道这与声明和定义不匹配有关,但我似乎无法确定。 任何帮助将不胜感激:) IntelliSense: declaration is incompatible with " Airpor-6ren">
gpt4 book ai didi

c++ - 3 智能感知 : declaration is incompatible with " Airport::getDetails(std::string)"

转载 作者:搜寻专家 更新时间:2023-10-31 01:44:19 24 4
gpt4 key购买 nike

收到这个错误

我知道这与声明和定义不匹配有关,但我似乎无法确定。

任何帮助将不胜感激:)

IntelliSense: declaration is incompatible with "<error-type> 
Airport::getDetails(std::string)" (declared at line 16 of "z:\documents\visual studio 2010\projects\oo_cw\oo_cw\Airport.h")
z:\documents\visual studio 2010\projects\oo_cw\oo_cw\airport.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};
}

关于c++ - 3 智能感知 : declaration is incompatible with "<error-type> Airport::getDetails(std::string)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23688798/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com