社区
C++ 语言
帖子详情
operator()是什么?怎么用?
thd555
2007-05-16 09:48:54
operator()是什么?怎么用?
能否举例说明?
...全文
9257
15
打赏
收藏
operator()是什么?怎么用?
operator()是什么?怎么用? 能否举例说明?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
060
2007-05-21
打赏
举报
回复
先要知道 ()是个什么样的运算符, 在C++里 ()有两种应用,分别是:
1, Cast: (), 就是类型转换,
double x = 3.1;
int i;
i = (int)x;
2, Function Call, 函数调用。
语法是
postfix-expression ( [argument-expression-list ] )
operator()基本都是第二种情况,进行运算符的重载,以实现函数调用。
其实,operator() 就是为了写起来好看, 这样的运算符重载,可以写成普通函数的形式。
yulefox
2007-05-20
打赏
举报
回复
1
重载operator()在STL中被称为函数对象,也叫仿函数……
Golden_Tiger
2007-05-20
打赏
举报
回复
有点意思
coolage31
2007-05-16
打赏
举报
回复
一般就是重载操作符啊
LZ没看书就来问啊 比我还强
xxxdg
2007-05-16
打赏
举报
回复
操作符重载
thd555
2007-05-16
打赏
举报
回复
是否会和构造函数 有 2义性?
oyd
2007-05-16
打赏
举报
回复
我上贴说的楼上是指2楼,不是指xlbdan(流浪剑客)
oyd
2007-05-16
打赏
举报
回复
1
是括号操作符,主要是为了在模板函数中用,模板函数中调用其他函数
楼上的这个例子并不能代表operator ()的真实作用,因为这里的t(10);完全可以用t.somefunction(10)来取代
我这里举个例子:
class test1
{
public:
void operator()(int x)
{
cout<<x<<endl;
}
};
void test2(int x)
{
cout<<x<<endl;
}
template<class OP> void f(OP op) {
op(10);
}
int main()
{
f(test1());
f(test2);
}
这意味着有了()操作符,写模板函数f的人只用在函数体内调用op,而不用管op实际上是一个函数还是一个对象
xlbdan
2007-05-16
打赏
举报
回复
重载的函数操作符,对对象使用起来就像对象是一个函数一样
class A
{
public:
A(int n);
int operator()(int n); //需要一个参数,返回int类型
void output();
int x;
};
A::A(int n):x(n)
{
}
int A::operator()(int n)
{
x=n; //实现.就是令数据成员x等于参数n
return x;
}
void A::output()
{
cout<<x<<endl;
}
int main()
{
A a(3);
a.output(); //输出3
cout<<a(5)<<endl; //a(5)就调用了operator(5),并a.x=5,返回值是int,也就是5
a.output(); //输出a.x,也是5
lightnut
2007-05-16
打赏
举报
回复
#include <iostream>
#include <cstdlib>
class Function
{
public:
double operator()(double x)
{ return 2*x;}
};
int main()
{
using namespace std;
Function myFunc;
cout<<myFunc(1.0)<<endl;
system("pause");
}
珍惜生命远离CPP
2007-05-16
打赏
举报
回复
class test
{
void operator()(int x)
{
cout<<x<<endl;
}
}
int main()
{
test t;
t(10);
return 0;
}
lightnut
2007-05-16
打赏
举报
回复
operator()是函数调用操作符!
STL中的各种functor就是重载它实现的.
thd555
2007-05-16
打赏
举报
回复
谢谢了
taodm
2007-05-16
打赏
举报
回复
楼主还是买本C++ Primer吧,认认真真学。
thd555
2007-05-16
打赏
举报
回复
回复人:coolage31() ( 一级(初级)) 信誉:100 2007-05-16 10:51:04 得分:0
一般就是重载操作符啊
LZ没看书就来问啊 比我还强
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-_-! 哪本书?介绍一下给我,我是初学者,不知道看什么书
用msdn查不到operator()的例子和说明
python3中替换python2中cmp函数的实现
python 3.4.3 的版本中已经没有cmp函数,被
operator
模块代替,在交互模式下使用时,需要导入模块。 在没有导入模块情况下,会出现 提示找不到cmp函数了,那么在python3中该如何使用这个函数呢? 所以要导入模块 看下面给的内置函数
operator
.lt(a, b)
operator
.le(a, b)
operator
.eq(a, b)
operator
.ne(a, b)
operator
.ge(a, b)
operator
.gt(a, b)
operator
.__lt__(a, b)
operator
.__le__(a, b)
operator
.__eq
Kubernetes
Operator
是什么?
Kubernetes
Operator
是用于自动化管理有状态应用的核心机制,通过自定义资源(CRD)和控制器实现应用全生命周期管理。开发主要使用Kubebuilder或
Operator
SDK工具,将运维经验编码为控制循环逻辑,自动处理部署、扩缩容和故障恢复。典型应用包括数据库(PostgreSQL)、消息队列(Kafka)和监控系统(Prometheus)的管理。
Operator
模式显著提升了云原生应用的自动化水平,但开发需深入理解Kubernetes API和分布式系统特性。
什么是 Coalescing
Operator
?
Coalescing 运算符是一种 JavaScript 表达式,用于通过提供默认值来处理可能的 null 或 undefined 值,这种运算符在逻辑上类似于 “OR” 运算符。该运算符可以用??表示,被称为 “nullish coalescing
operator
”。??24;// 0在上述代码中,null 和 0 都是 falsy 值,但是??运算符可以正确处理这些边界情况。
什么是空值合并运算符[Nullish coalescing
operator
](??)?
记录下一个曾经不常用的逻辑运算符:空值合并运算符 ( ?? )
几句话明白什么是Kubernetes
Operator
?
答案肯定是不知道的,这个时候就需要人工干预,这个人就是操作员,也就是
Operator
。1、要实现软件
Operator
层面,Kubernetes本身的api是不能够完成这类任务的,因为Kubernetes不可能存储所有应用的控制生命周期的知识。3、那么Kubernetes设计之初就说我们是一个自动化、减少人工干预的、自动修复平台,是不是优点问题。1、有状态应用,比如数据库、复杂的集群系统(ELK),本身有选举、同步等机制的应用程序。3、这些被单独定义的CRD就是
Operator
的具体控制生命周期的“知识”。
C++ 语言
65,202
社区成员
250,521
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章