我正在尝试编译这个cpp和h文件,但它一直给我这个错误“期望”('用于函数式转换或类型构造“并且它指向构造函数
GasTank::GasTank(double a){
capacity=a;
}
有什么想法?我无法弄清楚为什么它会给我这个错误。以下是代码的其余部分:
//
// Header.h
// labs
//
// Created by Pxndroid on 10/17/14.
// Copyright (c) 2014 Pxndroid. All rights reserved.
//
#include<string>
using namespace std;
class GasTank
{
private:
double amount;
double capacity;
public:
GasTank(double a);
void addGas(double b);
void useGas(double c);
bool isEmpty();
bool isFull();
double getGasLevel();
double fillUp();
};
和
//
// main.cpp
// labs
//
// Created by Pxndroid on 10/17/14.
// Copyright (c) 2014 Pxndroid. All rights reserved.
//
#include <iostream>
#include "Header.h"
using namespace std;
int main()
{
GasTank::GasTank(double a){
capacity=a;
}
void GasTank::addGas(double b){
if((amount+b)>capacity){
amount=capacity;
}
else{
amount+=b;
}
}
void GasTank::useGas(double c){
if((amount-c)<0){
amount=0;
}
else{
amount-=c;
}
}
bool GasTank::isEmpty(){
if(amount<0.1){
return true;
}
else{
return false;
}
}
bool GasTank::isFull(){
if(amount>capacity-0.1){
return true;
}
else{
return false;
}
}
double GasTank::getGasLevel(){
return amount;
}
double GasTank::fillUp(){
capacity-=amount;
amount+=capacity;
return capacity;
}
}
答案 0 :(得分:2)
将GasTank
成员的定义移到int main()
之外。他们不属于那里,编译器不期待它们;它们不属于main()
函数。