家长麦单推人 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 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器