c ++期望Xcode'('用于函数式转换或类型构造

时间:2014-10-18 06:49:19

标签: c++ xcode class header-files

我正在尝试编译这个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;
    }
}

1 个答案:

答案 0 :(得分:2)

GasTank成员的定义移到int main()之外。他们不属于那里,编译器不期待它们;它们不属于main()函数。