家长麦单推人 2019-04-03 12:29 采纳率: 100%
浏览 224
已采纳

为什么c++类的成员函数getxxx获得的数不能用操作符进行运算

自己拿示例代码改的

//构造函数、析构函数、和range()都在类的内部定义(内联函数,inline)
//将类的三个字段全部设置为私有变量
//添加存取函数用于获得三个私有变量的值

#include <iostream> 
using namespace std; 

//定义Vehicle类
class Vehicle {  
  int passengers; // number of passengers  
  int fuelcap;    // fuel capacity in gallons 
  int mpg;        // fuel consumption in miles per gallon 
public: 
  // This is a constructor for Vehicle. 
  Vehicle(int p, int f, int m) { 
    passengers = p; 
    fuelcap = f; 
    mpg = m; 
  } 

  // Compute and return the range. 
  int range() { return mpg * fuelcap; } 

  // Accessor functions. 
  int get_passengers() { return passengers; } 
  int get_fuelcap() { return fuelcap; } 
  int get_mpg() { return mpg; } 
}; 

int main() {  
  // Pass values to Vehicle constructor. 
  Vehicle minivan(7, 16, 21);  
  Vehicle sportscar(2, 14, 12); 
   if(&minivan.get_passengers*2)  //这一行是我修改了的部分
       printf("1");

  return 0; 
}

会报错error: invalid operands of types 'int (Vehicle::*)()' and 'int' to binary 'operator*'。
他们不都是int吗,为什么不能计算

展开全部

  • 写回答

3条回答 默认 最新

  • SFAfreshman 2019-04-03 12:36
    关注

    唔:1是你调用函数后面要加括号吧
    get_passengers*2
    改为
    get_passengers()*2
    才是正常调用
    有帮助的话采纳一下(捂脸)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 笔记本键盘禁用命令无效
  • ¥15 MC9S12XS128单片机实验
  • ¥15 失败的github程序安装
  • ¥15 WSL上下载的joern在windows怎么用?
  • ¥15 jetson nano4GB
  • ¥15 电脑回复出厂设置,重装过程报错提示,求解决方案Windows 无法分析或处理无人参与应答文件 [C:\WINDOWS\Panther\unattend.xml,如何解决?
  • ¥15 进入lighttools中的UDOP编辑器的方法
  • ¥15 求Gen6d训练数据集
  • ¥20 liunx中winscp中可以登入ftp,但是不能登入sftp,如何解决
  • ¥15 lighttools的光学属性自定义的用法流程
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部