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
相关产品推荐
相关产品推荐

