类和功能同名?

时间:2015-12-10 18:17:24

标签: c++ oop

我对C ++和OOP很陌生,所以我对一个方面特别感兴趣。我定义新课时的时刻。我给它起了名字而没有任何功能。 但是在课外,有一个带有类名数据类型的函数。

我想知道这个特殊的例子:

class point
{
public:
    double x;
    double y;
};

point solve(line v1, line v2);

int main()
{
    point A = solve(_a, _b);
}

point solve(line v1, line v2)
{
    point a;

    a.x = 0;
    a.y = 0;

    //more code here

    return a;
}

我真的不知道怎么一个类名成为一个独立的函数,该类的数据类型和函数名称是不同的(点解决())。它不是构造函数,也不是引用,因为它返回值。在该函数内部还有另一种数据类型Point。

有没有办法让初学者更容易理解?

2 个答案:

答案 0 :(得分:2)

好吧,先找一本好的C ++书。也许是C ++ Primer。

我想你在问

point solve(line v1, line v2)

point是返回值的类型。所以这类似:solve是一个接受两个参数的函数,两个参数都有line类型,并返回一个类型为point的值。

答案 1 :(得分:0)

Class只是一个用户定义的数据类型,在声明'solve'函数之前,你声明了类'point',所以编译器知道那个数据类型

如果在声明类点之前声明了solve函数,则会出错。

point solve()函数不能是构造函数,因为它与类的名称不同,而第二类它不在类的范围内。