首页 > 编程语言 >C++ 函数调用运算符 () 重载

C++ 函数调用运算符 () 重载

时间:2024-03-03 16:45:16浏览次数:24  
标签:Distance int C++ 运算符 函数调用 重载 feet

函数调用运算符 () 可以被重载用于类的对象。当重载 () 时,您不是创造了一种新的调用函数的方式,相反地,这是创建一个可以传递任意数目参数的运算符函数。

 1 #include <iostream>
 2 using namespace std;
 3 class Distance
 4 {
 5    private:
 6       int feet;             // 0 到无穷
 7       int inches;           // 0 到 12
 8    public:
 9       // 所需的构造函数
10       Distance(){
11          feet = 0;
12          inches = 0;
13       }
14       Distance(int f, int i){
15          feet = f;
16          inches = i;
17       }
18       // 重载函数调用运算符
19       Distance operator()(int a, int b, int c)
20       {
21          Distance D;
22          // 进行随机计算
23          D.feet = a + c + 10;
24          D.inches = b + c + 100 ;
25          return D;
26       }
27       // 显示距离的方法
28       void displayDistance()
29       {
30          cout << "F: " << feet <<  " I:" <<  inches << endl;
31       }
32 };
33 int main()
34 {
35    Distance D1(11, 10), D2;
36 
37    cout << "First Distance : "; 
38    D1.displayDistance();
39 
40    D2 = D1(10, 10, 10); // invoke operator()
41    cout << "Second Distance :"; 
42    D2.displayDistance();
43 
44    return 0;
45 }

结果

First Distance : F: 11 I:10
Second Distance :F: 30 I:120

 

标签:Distance,int,C++,运算符,函数调用,重载,feet
From: https://www.cnblogs.com/uacs2024/p/18050243

相关文章

  • C++ 赋值运算符'='重载
    C++拷贝构造函数(初学有点难理解)就像其他运算符一样,可以重载赋值运算符(=),用于创建一个对象,比如拷贝构造函数。1#include<iostream>2usingnamespacestd;3classDistance4{5private:6intfeet;//0到无穷7intinches;......
  • C++ ++ 和 -- 运算符重载
    原文递增运算符(++)和递减运算符(--)是C++语言中两个重要的一元运算符。1、递增和递减一般是改变对象的状态,所以一般是重载为成员函数。2、重载递增递减,一定要和指针的递增递减区分开。因为这里的重载操作的是对象,而不是指针(由于指针是内置类型,指针的递增递减是无法重载的),......
  • C++中UNIX时间戳与日期互转
    C++中UNIX时间戳与日期互转使用time.h头文件localtime可以把时间戳转为tm结构体,tm结构体中可以格式化输出时间mktime可以把tm结构体转为时间戳tm结构体中:year需要+1900,tm_mon的范围是0-11,tm_mday的范围是1-31structtm{inttm_sec;//secondsaftert......
  • pytorch报错:Variable._execution_engine.run_backward( # Calls into the C++ engine
    GPU模式下运行pytorch代码报错,pytorch为2.2.1,NVIDIA驱动版本535.161.07File"/home/devil/anaconda3/envs/sample-factory/lib/python3.11/site-packages/torch/_tensor.py",line522,inbackwardtorch.autograd.backward(File"/home/devil/anaconda3/envs/sample-......
  • C++新U4-贪心算法1
    学习目标贪心算法的概念[【贪心算法(一)】书架]    【题意分析】选出最少的奶牛数量,让他们的身高相加超过书架的高度。【思路分析】优先选择身高高的奶牛,这样子奶牛使用的数量最少。定义排序规则,将数从大到小排序定义奶牛数量n和书架高度b,并且输入输......
  • C++第二课 while循环
    循环while(条件){   循环体}#include<bits/stdc++.h>usingnamespacestd;intmain(){   inti,s;   i=1;   s=0;   while(i<=100)   {      s=s+i;      i=i+1;   }   cout<<s<<endl;   return0;}计算1......
  • 是学习c++还是java?
    上高中时,自己第一次接触到学校的中华学习机和苹果机,当时中华学习机上可以进行basic编程,那时候自己其实就爱上编程,但是没有人指点,也学习不得法,所以就没有进行下去!大学时,自己的主攻专业并不是计算机,但是学习了《计算机基础》和《c程序设计》,前者主要学习dos命令和wps文字处理,后者主......
  • C++第一课 输出Hello World
    #include<bits/stdc++.h>usingnamespacestd;intmain(){ }这是一个固定的格式,记住就行了。#include<bits/stdc++.h>usingnamespacestd;intmain(){   cout<<"Hello,World!"<<endl;   return0;}这是一个简单的输出Hello,World! #include<bits/stdc......
  • Qt/C++音视频开发67-保存裸流加入sps/pps信息/支持264/265裸流/转码保存/拉流推流
    一、前言音视频组件除了支持保存MP4文件外,同时还支持保存裸流即264/265文件,以及解码后最原始的yuv文件。在实际使用过程中,会发现部分视频文件保存的裸流文件,并不能直接用播放器播放,查阅资料得知原来是缺少sps/pps信息,监控行业的rtsp/rtmp/录像mp4文件都是会带的,所以很少遇到这个......
  • C++ 多态
    原文多态按字面的意思就是多种形态。当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态。C++多态意味着调用成员函数时,会根据调用函数的对象的类型来执行不同的函数。1#include<iostream>2usingnamespacestd;3classShape{4protected:5......