功能论证

时间:2013-10-07 00:43:32

标签: c++

我是一名新的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";


}

2 个答案:

答案 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)'