我是一名新的c ++学生,我正在尝试为孩子们制作基础课程,以学习基础数学。这是一项正在进行的工作,因此有些代码没有完成。我正在尝试编译到目前为止我所做的事情,我收到的错误是:47 59 [错误]新声明'void add(int,int,std :: string,char)'和18 5 [错误]模糊旧声明'int add(int,int,std :: string,char)'
#include <iostream>
#include <iomanip>
#include <time.h>
#include <string>
#include <cstdlib>
#define over2 "\t\t"
#define over3 "\t\t\t"
#define over4 "\t\t\t\t"
#define down5 "\n\n\n\n\n"
#define down8 "\n\n\n\n\n\n\n\n"
#define down10 "\n\n\n\n\n\n\n\n\n\n"
#define down12 "\n\n\n\n\n\n\n\n\n\n\n\n"
using namespace std;
int add(int,int,string,char);
int sub();
int multi();
int div();
int main(int argc, char** argv)
{
int num1, num2;
unsigned seed = time(0);
srand(seed);
num1 = 1 +rand() % 4;
num2 = 1 +rand() % 4;
// correctAnswer = (num1+num2);
cout << "This program is a tool for young kids to learn basic math.\n";
cout << "Just press any key and the learning will commence!\n";
system("CLS");
add(num1, num2, "Addition", '+');
// addResults(num1+num2);
return 0;
}
void add(int num1, int num2, string operation, char symbol)
{
cout << down8;
cout << over3 << operation << endl;
cout << over3 << "________\n";
cout << over3 << setw(3) << num1 << endl;
cout << over3 << symbol << endl;
cout << over3 << setw(3) << num2 << endl;
cout << over3 << "________\n";
}
答案 0 :(得分:1)
add
方法的返回类型在声明(int
)和定义(void
)中有所不同。我认为定义的类型应该更改为int
并使其返回结果。
答案 1 :(得分:1)
我不完全确定,但我认为这个问题刚开始。
定义添加功能时,将其写为int add(int,int,string,char);
但是,您没有像实际编写函数时那样正确定义变量。此外,在开始时,您将其定义为int,但您将其写为void。编译器不知道你要做什么,因为它认为有2个add函数,一个int类型和另一个void函数,这可能是18 5 [Error]模糊旧声明'int add(int,int, std :: string,char)'