You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++如何将main函数中的用户输入传递给其他类的成员函数

问题根源

你遇到的问题本质是成员函数的声明、实现、调用三者参数列表不匹配,具体错误点如下:

  • multiplication类的头文件中mult()被声明为无参函数,但你实现的时候定义为带两个int参数的int mult(int x, int y),两者签名不匹配
  • 调用out.mult()时没有传入你读取到的x和y变量,函数自然无法拿到输入值
  • subtraction类存在完全相同的问题:头文件sub()声明为无参,实现是带两个int参数,调用时也没有传入product和z
修正方案

只要将三处的参数列表修改为一致即可:

1. 修正头文件的函数声明

multiplication.h

#pragma once
class multiplication
{
public:
    // 声明为带两个int入参的函数
    int mult(int x, int y);
};

subtraction.h

#pragma once
class subtraction
{
public:
    // 声明为带两个int入参的函数
    int sub(int product, int z);
};

2. 修正main函数中的调用逻辑

把读取到的变量传入对应的成员函数:

#include <iostream>
#include "multiplication.h"
#include "subtraction.h"
using namespace std;

int main() {
    multiplication out;
    subtraction out2;
    int x, y, z;
    int product;
    int difference;

    cout << "Enter two numbers to multiply by: ";
    cin >> x;
    cin >> y; 
    // 传入读取到的x和y
    product = out.mult(x, y);
    cout << "the product is: " << product << endl;

    cout << "Now enter a number to subtract the product by: ";
    cin >> z;
    // 传入运算得到的product和读取到的z
    difference = out2.sub(product, z);
    cout << "the difference is: " << difference << endl;
    return 0;
}

3. 现有成员函数的实现已经符合参数要求,不需要额外修改

内容的提问来源于stack exchange,提问作者Valskarx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 07:45:01