使用重载运算符C ++的语法

时间:2015-06-30 23:00:05

标签: c++ syntax operator-overloading inline

这是一个包含在类中的重载运算符:

inline operator const FOO() const { return _obj_of_type_FOO; }

我不能为我的生活理解:

  • 我如何调用此运算符?
  • 它的回报价值是多少?
  • [中学]是否内联会影响效率以外的任何事情?

1 个答案:

答案 0 :(得分:0)

如果Foo是一个类型且它在一个类中,那个表达式看起来像转换运算符的声明。第二个const(靠近开头大括号的那个)意味着可以在Foo foo = c个实例上调用转换。让我们说类是C.您可以将转换运算符视为类外的构造函数。例如,您不能将构造函数添加到类std :: string中,但您可以将std :: string的转换运算符添加到类中。结果是您可以从类实例构造std :: string。

1)如何调用转换运算符:通过从C构造Foo类型的值,例如: void funOnFoo(Foo v);(其中c是C的实例,声明转换运算符的类)。请注意,转换的调用可能会隐式发生。例如,如果您有cC operator const Foo的实例,则可能隐含地调用funOnFoo(c)funOnFoo。这是否真的取决于通常的事情:是否存在C的其他重载,const Foo的其他转换等。

2)返回值为inline

3)global $wpdb; $_POST['user_id']; $_POST['div_id']; $_POST['x_pos']; $_POST['y_pos']; $user_id = $_POST['user_id']; $div_id = $_POST['div_id']; $x_pos = $_POST['x_pos']; $y_pos = $_POST['y_pos']; $wpdb->query($wpdb->prepare(" INSERT INTO coords (user_id, div_id, x_pos, y_pos) VALUES (%d, %s, %d, %d) ON DUPLICATE KEY UPDATE x_pos = VALUES(x_pos), y_pos = VALUES(y_pos)", $user_id, $div_id, $x_pos, $y_pos )); 与任何函数的含义相同,特别是不影响重载决策