C++ 在main中调用类的函数

C++ 在main中调用类的函数,c++,c++11,visual-c++,C++,C++11,Visual C++,我知道我们可以通过对象的形式调用类的函数,例如 object.Function1(object); 但是有没有像下面这样调用函数的方法 Function1(object); 我必须编写一个类来运行代码,其中包含一个主函数,如下所示 int main() { Line line1(10); Line line2 = line1; display(line1); display(line2); return 0; } 我不知道您为什么需要它,但您可以创建调

我知道我们可以通过对象的形式调用类的函数,例如

 object.Function1(object);
但是有没有像下面这样调用函数的方法

  Function1(object);
我必须编写一个类来运行代码,其中包含一个主函数,如下所示

  int main() {
  Line line1(10);
  Line line2 = line1; 
  display(line1);
  display(line2);
  return 0;
   }

我不知道您为什么需要它,但您可以创建调用方法display的自由函数“display”:

void display(Line& line)
{
    line.display();
}
int main() {
    Line line1(10);
    Line line2 = line1; 
    display(line1);
    display(line2);
    return 0;
}

为了补充桑德罗简单但有效的建议,这里有一个更一般的建议,在评论中有人提到

可以使用与(或如果使用C++ 11编译器之前的C++编译器)创建一个与成员函数对应的函数对象。p> 优点是您不必担心返回类型和参数:

class C {
    public:
    void x() { cout << "Yes x!"<<endl; }
    void y(int a) { cout << "Yes y"<<a<<"!"<<endl; }
};

int main() {
    C c; 
    c.x(); 
    c.y(3); 

    auto x = mem_fn(&C::x);    // function object
    auto y = mem_fn(&C::y);
    x(c);                      // call them like a function 
    y(c,4);

    return 0;
}
C类{
公众:

void x(){cout
std::mem_fn
是答案,或者一个lambdaMake将方法设置为
static
方法。@Thomas Matthews如果将方法设置为静态,我必须使用类名来调用方法是的,你是正确的。如果函数是静态的,你不需要对象实例。只需将“显示”设置为自由函数即可