2015-05-16 2 views
3

Недавно я начал изучать C++, но столкнулся с проблемой. Программа, приведенная ниже, не дает мне желаемого результата, поскольку я вижу только «Привет» в результате, но не то, что написано в функции void. Пожалуйста, расскажите мне, почему это происходит вместе с решением.Ошибка программирования в C++

Я использую Xcode 6.3.1, и я выбрал язык C++.

#include <iostream> 
using namespace std; 

void ABC() { 
    cout << "Hey there ! \n"; 
} 

int main() { 

    cout << "Hi \n"; 

    void ABC(); 

    return 0; 
} 
+5

'void ABC();' это функция * Объявление *, а не * вызов *. Чтобы вызвать, напишите 'ABC();'. – SomeWittyUsername

ответ

4

вам нужно вызвать свой метод и не объявить его в главном

#include <iostream> 
using namespace std; 
void ABC() { 
    cout << "Hey there ! \n"; 
    } 
    int main() 
    { 
     cout << "Hi \n"; 
     ABC(); 
     return 0; 
     } 

EDIT 1: Поскольку вы начали обучение C++ я рекомендую следующие рекомендации, чтобы убедиться, что ваш код чище. Пожалуйста, обратите внимание, что это не правила с помощью каких-либо средств, но больше лучших практик и стиля кодирования.

  • Используйте значащие имена для ваших переменных, методов, функций, классов ... Так что вместо ABC() назвать это то, что если вы (или кто-то еще читает его) теперь, что это, предполагают, чтобы сделать ,
  • При вызове методов и функций попробуйте объявить их с соответствующим возвращаемым значением . Void по определению не возвращает значение , оно просто обрабатывает код внутри него. поэтому ваши методы/функции должны возвращать соответствующие значения того, что они предполагают.

Вот версия 2 вашего кода с примерами 3 различных методов и вызовов:

#include <iostream> 

using namespace std; 
int sum; 
string MethodReturningString() 
{ 
    return "Hey there i am the result of a method call !"; 
} 

int MethodReturningInt() 
{ 
    return 5; 
} 

void CalculateSum(int x,int y) 
{ 
    sum=x+y; 
} 
int main() 
{ 
    cout << MethodReturningString() << endl; 
    cout << MethodReturningInt() << endl; 
    cout << "Calculating sum:" ; 
    CalculateSum(5,4); 
    cout << sum << endl; 
    return 0; 
} 

Счастливые кодирования

0

Попробуйте это:

#include <iostream> 
using namespace std; 

void ABC() { 

cout << "Hey there ! \n"; 
} 

int main() { 

cout << "Hi \n"; 

ABC(); 

return 0; 
} 

Вы должны вызвать функцию просто указав его имя и добавив круглые скобки.

8

Вы обновляете функцию void ABC() внутри main(). Просто позвоните ABC(); без void.

Вы можете взглянуть на это question о объявлении функции в рамках другой.

4

На C++, как и на любом другом языке, вы не указываете тип возврата при вызове функции. Таким образом изменить строку:

void ABC(); 

к:

ABC(); 
4

В коде ваш вызов функции был не прав.

При вызове вашей функции вам не нужно, чтобы добавить тип возвращаемого:

#include 

void ABC() { 

    cout << "Hey there ! \n"; 

} 

int main() { 

    cout << "Hi \n"; 

    ABC(); 

    return 0; 
} 
0

вместо использования пустот ABC() для вызова функции ABC() в основной(), используйте следующий код :

#include  

void ABC() 
{ 
    cout << "Hey there ! \n"; 
} 

int main() 
{ 
     cout << "Hi \n"; 
    ABC(); 
    return 0; 
} 
Смежные вопросы