Функция справки в C ++ - PullRequest
       8

Функция справки в C ++

1 голос
/ 11 октября 2010

Я пытаюсь создать очень простую функцию в c ++, но получаю «Ошибка ссылки».

Мой код:

#include <iostream>

using namespace std ;


int fun(int,int);

main(){
    int width,height,w,h,mult;

    cin>>width;
    cin>>height;

    mult = fun(width,height);

    int fun(int w,int h);{
        w * h ;
        }

    cout << mult ; 

}

Ошибка:

[Linker error] undefined reference to `fun(int, int)' 
ld returned 1 exit status 

Ответы [ 4 ]

6 голосов
/ 11 октября 2010

Нет реализации fun(int, int) нигде.Модуль, который реализует это, должен быть связан с этим.Или вы должны написать функцию в модуле выше, возможно, где находится прототип.

Похоже, что не удалось определить функцию на полпути:

int fun(int w,int h);{
    w * h ;
    }

Что это на самом деле делаетобъявите (снова), что есть какая-то функция int fun(): это прототип.Затем есть выражение w * h, все еще внутри функции main, которое вычисляется, но с результатом ничего не делается.

2 голосов
/ 11 октября 2010

Ack ... так много вещей не так с этим.Должно быть что-то вроде этого:

#include <iostream>

using namespace std ;

int fun(int, int);

void main(){
    int width,height,mult;

    cin >> width;
    cin >> height;

    mult = fun(width, height);

    cout << mult << endl; 

}

int fun(int w, int h) {
    return w*h;
}

(прошло некоторое время с тех пор, как я коснулся C ++)

1 голос
/ 11 октября 2010

Вам нужно определить функцию вне main ()

1 голос
/ 11 октября 2010

Вы объявляете глобальную функцию fun и определяете ее внутри main.Вы должны объявить это снаружи или удалить внешнее объявление

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...