C ++ Visual Studio非标准语法使用'&'创建指向成员的指针

时间:2016-09-04 21:56:06

标签: c++

我正在学习C ++,在我的课堂上,我们将讨论构造函数和重载构造函数,我只想弄清楚如何使这个重载构造函数工作。

我收到错误C3867" ' Integer :: toInt&#39 ;:非标准语法;使用'&'创建指向成员的指针"在Double.cpp中

过去2个小时我一直坚持这一点现在我不知道如何向前推进任何帮助表示赞赏。

Double.h:

    #ifndef DOUBLE
    #define DOUBLE

    class Integer;

    class Double
    {
        public:
            double num;

        public:
            void equal(double value);

            double  toDouble()const;

            // Constructors

            Double();
            Double(Double &val);
            Double(double val);
            Double(Integer &val); // This is the trouble one

    };

    #endif // !DOUBLE

Double.cpp

void Double::equal(double value)
{
    this->num = value;
}

Double::Double()
    {
        this->equal(0.0);
    }

    Double::Double(Double &val)
    {
        this->equal(val.num);
    }

Double::Double(double val)
{
    this->equal(val);
}

Double::Double(Integer &val)
{
    this->equal(val.toInt); // I get the error right here
}

Integer.h:

#ifndef INTEGER
#define INTEGER

class Double;

class Integer 
{
    private:
        int num;

    public:
        void equal(int value);

        int  toInt()const;

        //Constructors

        Integer();
        Integer(Integer &val);
        Integer(int val);

};

#endif // !INTEGER

和Integer.cpp

int Integer::toInt()const
{
    return this->num;
}

//Constructer

Integer::Integer()
{
    this->equal(0);
}

Integer::Integer(Integer &val)
{
    this->equal(val.num);
}

Integer::Integer(int val)
{
    this->equal(val);
}

1 个答案:

答案 0 :(得分:2)

您需要调用toInt的{​​{1}}方法:

Integer