首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

和类有关的有关问题

2012-02-22 
和类有关的问题#include iostreamusing namespace stdclass studentclass teacher{private:int idcha

和类有关的问题
#include <iostream> 
using namespace std; 
  
class student; 
class teacher 

private: 
  int id; 
  char* name; 
public: 
  void get(); 
  void assigngrade(student &a); 
   
};//注意 
class student 

private: 
  static int cout; 
  int number; 
  char* name; 
  char* subject; 
  float grade; 
public: 
  student(int num,char * nam,char*sub,float grad);//注意 函数定义在类里面的话便不能 用头文件的cout 
  ~student(); 
  void get(); 
  void show(); 
  friend class teacher; 
}; 
student::student(int num,char * nam,char*sub,float grad) 

  number=num; 
  name =new char[sizeof(nam)]; 
  strcpy(name,nam); 
  subject=new char[sizeof(sub)]; 
  strcpy(subject,sub ); 
  grade=grad; 
  cout++; 

  
student::~student() 

  cout<<"学号:"; 
  delete []name; 
  delete []subject; 
  cout--; 

void student::get() 

  cout<<"请输入学号 名字 科目 成绩"<<endl; 
  int n=10; 
  int m=10; 
  name=new char[n]; 
  subject=new char[m]; 
  cin>>number>>name>>subject>>grade; 
  n=strlen(name)+1; 
  m=strlen(subject)+1; 

void teacher::get() 

  int i; 
  cin>>i; 
  id=i; 
  int a=10; 
  name=new char[a]; 
  cin>>name; 
  a=strlen(name)+1; 

void teacher::assigngrade(student& a) 
  { 
  
  float b; 
  cin>>b; 
  a.grade=b;//注意当写函数原型时打分号 当直接定义函数时 不要打 
  } 
void student::show() 

  cout<<number<<'\t'<<name<<'\t'<<subject<<'\t'<<grade<<endl; 

int student::cout=0; 
int main() 

  int n; 
  cout<<"请输入要输入学生的数目"<<endl; 
  cin>>n; 
  return 0; 

  
  
   
  
为什么编辑出现这种错误 哪位大牛帮帮我这个小菜啊 
Compiling... 
2.cpp 
E:\编程\自己的程序\郁闷的类\2.cpp(43) : error C2297: '<<' : illegal, right operand has type 'char [7]' 
E:\编程\自己的程序\郁闷的类\2.cpp(50) : error C2297: '<<' : illegal, right operand has type 'char [26]' 
E:\编程\自己的程序\郁闷的类\2.cpp(78) : error C2297: '<<' : illegal, right operand has type 'char *' 
Error executing cl.exe.

[解决办法]
class student;
class teacher
{
private:
int id;
char* name;
public:
void get();
void assigngrade(student &a);

};//注意
class student
{
private:
static int cout;
int number;
char* name;
char* subject;
float grade;


public:
student(int num,char * nam,char*sub,float grad);//注意 函数定义在类里面的话便不能 用头文件的cout
~student();
void get();
void show();
friend class teacher;
};
student::student(int num,char * nam,char*sub,float grad)
{
number=num;
name =new char[sizeof(nam)];
strcpy(name,nam);
subject=new char[sizeof(sub)];
strcpy(subject,sub );
grade=grad;
cout++;
}
 
student::~student()
{
std::cout<<"学号:";
delete []name;
delete []subject;
cout--;
}
void student::get()
{
std::cout<<"请输入学号 名字 科目 成绩"<<std::endl;
int n=10;
int m=10;
name=new char[n];
subject=new char[m];
cin>>number>>name>>subject>>grade;
n=strlen(name)+1;
m=strlen(subject)+1;
}
void teacher::get()
{
int i;
cin>>i;
id=i;
int a=10;
name=new char[a];
cin>>name;
a=strlen(name)+1;
}
void teacher::assigngrade(student& a)
{
 
float b;
cin>>b;
a.grade=b;//注意当写函数原型时打分号 当直接定义函数时 不要打
}
void student::show()
{
std::cout<<number<<'\t'<<name<<'\t'<<subject<<'\t'<<grade<<std::endl;
}
int student::cout=0;

int main()
{
int n;
std::cout<<"请输入要输入学生的数目"<<std::endl;
std::cin>>n;
return 0;
}

把域作用符放里面吧,试试,没有error了。
[解决办法]
name =new char[sizeof(nam)]; //name=new char[strlen(nam)+1];
后面自己改

热点排行