C++;Visual Studio非标准语法使用'&';创建指向成员的指针的步骤 我正在学习C++,在我的课堂上,我们正在研究构造函数和超载构造函数,我只想知道如何让这个超载构造函数工作。

C++;Visual Studio非标准语法使用'&';创建指向成员的指针的步骤 我正在学习C++,在我的课堂上,我们正在研究构造函数和超载构造函数,我只想知道如何让这个超载构造函数工作。,c++,C++,我得到错误C3867“'Integer::toInt”:非标准语法;在Double.cpp中使用“&”创建指向成员的指针 在过去的两个小时里,我一直在坚持这一点,现在我不知道如何继续前进。感谢您的帮助 双h: #ifndef DOUBLE #define DOUBLE class Integer; class Double { public: double num; public:

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

在过去的两个小时里,我一直在坚持这一点,现在我不知道如何继续前进。感谢您的帮助

双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
}
整数.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);
}

您需要调用
Integer
toInt
方法:

this->equal(val.toInt());

您需要调用
Integer
toInt
方法:

this->equal(val.toInt());

这是编译器表示您意外地传递了一个变量(
val.toInt
),而不是调用函数
val.toInt()
)。以下是完整的详细信息,这是编译器表示您意外地传递了一个变量(
val.toInt
),而不是调用函数
val.toInt()
)。下面是要添加到您的(完全准确的)答案中的完整详细信息,错误消息指的是旧
VS
版本的扩展(有些人会称之为bug),其中包括您可以像这样获取成员函数的地址,
val.toInt
,虽然唯一的标准语法是
&Integer::toInt
。要添加到(完全准确的)答案中,错误消息指的是旧
VS
版本的扩展(有些人会称之为bug),其中包括您可以像这样获取成员函数的地址,
val.toInt
,而唯一的标准语法是
&Integer::toInt