我知道我们可以通过一个对象来调用一个类的函数,例如
object.Function1(object);
但有没有办法像下面这样调用函数
Function1(object);
我必须编写一个类,它将使用main函数运行代码,如下所示
int main() {
Line line1(10);
Line line2 = line1;
display(line1);
display(line2);
return 0;
}
答案 0 :(得分:5)
我不知道为什么你需要它但你可以创建调用方法显示的自由功能“display”:
select table1.*
from table 1
inner join view1
on table1.a = view1.a
and table1.b = view1.b;
答案 1 :(得分:0)
作为Sandro简单而有效的提案的补充,这里有一个更通用的提案,有人在评论中提到。
您可以使用mem_fn()
创建与成员函数对应的函数对象(如果在C ++ 11之前使用旧的C ++编译器,则可以创建mem_fun_ref()
)。
优势在于您不必担心返回类型和参数:
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;
}
不便之处在于这种便利是有代价的:与Sandro的方法不同,对于不同的类,你不能对同一个函数名称进行不同的重载。