PDA

View Full Version : یه error در C++



h_c2005
چهارشنبه 26 اردیبهشت 1386, 20:13 عصر
با سلام و خسته نباشید خدمت دوستان .
من یه برنامه نوشتم که تو اون یک کلاس و تعدادی تابع بود . حالا وقتی کامپایل می کنم یه ارور می ده که اصلا منظورش رو نمی فهمم می خواستم واسم توضیح بدید :

این هم ارور :
error C2679: binary '<<' : no operator defined which takes a right-hand operand of type 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<
char> >' (or there is no acceptable conversion)

و این هم کل برنامه :



#include <iostream.h>
#include <string>
using std::string;
class GradeBook
{
public:
GradeBook(string);
void setCourseName(string);
string getCourseName();
void displayMessage();
void average();
private:
string courseName;
};


****************************************

#include <iostream.h>
#include "GradeBook.h"
#include <string>
using std::string;
GradeBook::GradeBook(string name)
{
setCourseName(name);
}
void GradeBook::setCourseName(string name)
{
courseName=name;
}
string GradeBook::getCourseName()
{
return courseName;
}
void GradeBook::displayMessage()
{
cout<<"the name of book:"<<getCourseName()<<endl;
}
void GradeBook::average()
{
int average;
int grad;
int counter=1;
int total=0;
while (counter<=10)
{
cout<<"inter integer:"<<endl;
cin>>grad;
total=total+grad;
counter=counter+1;
}

average=total/10;
cout<<"average="<<average<<endl;
}


#include <iostream.h>
#include "GradeBook.h"
#include <string>
using std::string;
int main()
{
GradeBook GradeBook1("How to programming in C++");
cout<<GradeBook1.displayMessage()<<endl;
GradeBook1.average();
return 0;
}



ضمنا جدا از هم کامپایل کردم.

RED-C0DE
پنج شنبه 27 اردیبهشت 1386, 11:40 صبح
تابع ()displayMessage که شما استفاده کردی نوع برگشتی void داره (در واقع چیزی رو برگشت نمی ده) و نمی تونی ازش خروجی بگیری.

توی ()int Main بجای :

cout<<GradeBook1.displayMessage()<<endl;

بنویس :

GradeBook1.displayMessage();

orion188
پنج شنبه 27 اردیبهشت 1386, 11:55 صبح
والا من اصلا دوست ندارم از cout و ... استفاده کنم و تجربه کار باهاشم ندارم!
اما فکر کنم string قبول نمیکنه و باید char* بهش بدین (تو اون مورد اول)
مورد دوم هم که دوستان توضیح دادن

RED-C0DE
پنج شنبه 27 اردیبهشت 1386, 12:30 عصر
والا من اصلا دوست ندارم از cout و ... استفاده کنم و تجربه کار باهاشم ندارم!
اما فکر کنم string قبول نمیکنه و باید char* بهش بدین (تو اون مورد اول)
مورد دوم هم که دوستان توضیح دادن

البته cin , cout در خیلی جاها می تونن مفید تر باشن و در مورد string هم جواب می دن.

h_c2005
شنبه 29 اردیبهشت 1386, 12:02 عصر
متشکرم ... مشکلم حل شد

molla652003
شنبه 29 اردیبهشت 1386, 12:08 عصر
using namespace std

رو بزار ببین درست نمیشه؟