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