家长麦单推人 2019-04-03 20: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 20:36
    关注

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

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

报告相同问题?

悬赏问题

  • ¥15 聚类分析或者python进行数据分析
  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号