Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Ошибка "implicit declaration of function"


Автор: sasha962 30.12.2007, 17:34
Есть код:
Код

#include <cstdlib>
#include <iostream>

using std::cout;
using std::endl;
using std::cin;

#include <string>
using std::string;
using std::getline;


class GradeBook
{
      public:
             GradeBook(string name)
             {
                              setCourseName(name);
                              }
                              
             void setCoursename(string name)
             {
                  courseName=name;
                  }
                  string getCourseName()
                  {
                         return courseName;
                         }
                         
             void displayMessage()
                          {
             cout<<"welcome to the grade book for\n"<<getCourseName()<<"!"<<endl;
             }
             private:
                     string courseName;
             };
             int main()
             
             {
                 GradeBook gradeBook1("cs 101");
                 GradeBook gradeBook2("cs 102");
                 cout<<"gradeBook1 created for:"<<gradeBook1.getCourseName()<<"\ngradeBook2 created for:"<<gradeBook2.getCourseName()<<endl;
                 
                
                 
                 return 0;
             
             }                                                                   




Не получается скомпилировать. Компилятор выдаёт ошибку
Цитата

 implicit declaration of function `int setCourseName(...)'


Цитата

 warning: cannot pass objects of type `string' through `...'




 ! 
archimed7592
Давай более осмысленные названия своим темам.

Автор: bsa 30.12.2007, 18:07
sasha962, У тебя нет метода setCourceName(), у тебя есть setCoursename(). 
Я немного переформатировал код, пожалуйста, в следующий раз оформляй аналогично (я в основном про отступы):
Код
#include <cstdlib>
#include <iostream>
#include <string>

using std::cout;
using std::endl;
using std::cin;

using std::string;
using std::getline;


class GradeBook
{
public:
        GradeBook(const string &name) {
                setCourseName(name);
        }

        void setCourseName(const string &name) {
                courseName=name;
        }
        string getCourseName() const {
                return courseName;
        }

        void displayMessage() {
                cout << "welcome to the grade book for\n" << getCourseName() << "!" << endl;
        }
private:
        string courseName;
};

int main()
{
        GradeBook gradeBook1("cs 101");
        GradeBook gradeBook2("cs 102");
        cout << "gradeBook1 created for:" << gradeBook1.getCourseName() << "\ngradeBook2 created for:" << gradeBook2.getCourseName() << endl;
        return 0;
}

Автор: sasha962 1.1.2008, 13:13
большое спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)