2013-06-25 3 views
-1

У меня есть следующий кодC++ бесплатно функция

#include "stdafx.h" 
#include <iostream> 
using namespace std; 
#include "graderec.h" 

int main() 
{ 
    GradeRecord studentAnn("45-2791", 14, 49); 
    GradeRecord studentBob("67-5803",25, 50); 

    int bobsUnits; 
    int bobsGradePoints; 
    int annsUnits = 4; 
    int annsGradePoints = 16; 

    cout << "Ann's Grade Information:" << endl; 
    studentAnn.writeGradeInfo(); 

    cout << endl; 

    cout << "Bob's Grade Information:" << endl; 
    studentBob.writeGradeInfo(); 

    cout << endl; 

    cout << "Enter Bob's units: "; 
    cin >> bobsUnits; 

    cout << "Enter Bob's grade points: "; 
    cin >> bobsGradePoints; 

    cout << endl; 

    cout << "Bob's Grade Information:" << endl; 
    studentBob.updateGradeInfo(bobsUnits, bobsGradePoints); 
    studentBob.writeGradeInfo(); 

    cout << endl; 

    cout << "Ann's Grade Information:" << endl; 
    studentAnn.updateGradeInfo(annsUnits, annsGradePoints); 
    studentAnn.writeGradeInfo(); 

    system("PAUSE"); 
    return 0; 

} 

void asterisks() 
{ 
    cout << "************************************************************************" << endl; 

} 

мне нужно использовать бесплатную функцию для отображения около 60 звездочек, где у меня есть COUT < < Endl. Я последовал примеру, который я давал, но не могу заставить его работать.

Код, приведенный ниже, является примером того, как мне была предоставлена ​​функция свободной функции.

void companyBanner() 
{ 
    cout << *************************** << endl; 
    cout << **  Tech Guys LLC  ** << endl; 
    cout << *************************** << endl; 
    cout << endl; 
} 

Updatea: Получил его работу, спасибо за помощь всем. Я переписал бесплатную функцию и снова добавил звездочки() над основным, и это сработало. Должно быть, что-то было в свободной функции, которая заставляла ее не работать.

+0

Вы почти там, просто назовите 'asterisks();' где вы хотите. Для основных вещей, таких как это, вы должны, вероятно, захватить [хорошую книгу на C++] (http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list). – Angew

+0

В вашем примере отсутствуют кавычки вокруг строк. –

+0

Поместите свою строку в двойную цитату. 'cout <<" ****** "<< endl;' –

ответ

0

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

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

Строковые литералы должны быть заключены в двойные кавычки ".

+0

Бесплатные функции могут иметь пустые списки параметров. –

+0

Возможно, мой английский здесь не служит мне, но я полагаю, что свободная функция связана с освобождением памяти, например, встроенной функцией 'free' или' delete' –

+2

. Бесплатная функция - это функция, которая не является членом класса. –

0

«Не работает» слишком смутно для нас, чтобы помочь вам. Моя попытка на данный момент заключается в том, что вы не прототипировали функцию звездочки(). Положите void asterisks(); выше вашего основного.

0

Если я понимаю вопрос (скажите, пожалуйста, если я ошибаюсь), просто замените cout << endl; вызовом функции: asterisks().

Кроме того, либо переместите функцию asterisks перед вашей основной, либо добавьте прототип void asterisks(); над основным.

 Смежные вопросы

  • Нет связанных вопросов^_^