当前位置:编程学习 > C/C++ >>

C++有个错,求高人给改下!!!!!

#include<iostream>
using namespace std;
class yonghu
{
private:
 char mima1,mima2;
 char name[10];
public:
 yonghu();
 void zhuce();
 friend void denglu();
};
yonghu::yonghu()
{
 mima1=0;
 mima2=0;
}
void yonghu::zhuce()
{
 cout<<"请输入账号\n";
 cin>>name;
 cout<<"请输入密码\n";
 cin>>mima1;
}
void denglu()
{
 cout<<"请输入账号\n";
 cin>>name;
    cout<<"请输入密码\n";
 cin>>mima2;
    if(mima1==mima2)
  cout<<"登陆成功";
}
void main()
{
 yonghu name;
 yonghu yonghu;
 int b,j;
 for(j=0;j<10;j++)
 {
  cout<<"欢迎使用\n"<<"注册请按1\n"<<"登陆请按2\n";
     cin>>b;
     if(b=1)
  {
   void zhuce();
            j=10;
  }
  else if(b=2)
  {
   void denglu();
   j=10;
  }
  else
   cout<<"输入无效,请重新输入!";
 }
}
追问:注册完毕后多了一句,能再改改吗?

答案:错误不止一处,看程序应该是新手吧,呵呵,要加油咯。

1.首先,void denglu()这个函数,你把他声明成了友元,这样可以访问类的私有成员,这是没错的。

但是注意“友元函数不能直接访问类的成员,,只能访问对象成员。”即访问前必须存在一个该类的对象。

所以在友元函数的参数中要指定访问的对象。

类体声明部分改为 friend void denglu(yonghu& yh);

函数实现部分改为void denglu(yonghu& yh)

同时name,mima都要改为对象成员 yh.name , yh.mima。

2.你在主函数中声明了两个对象yonghu name; yonghu yonghu;,但是后面没有用到。

其次在条件语句后调用函数时void zhuce(); void denglu();这是错误的,是声明函数的格式。

调用函数时前面不加返回值类型,若是对象调用自身成员函数要加上对象名.成员函数名。

分别改为name.zhuce()   denglu().

3.条件语句if后面的括号内是一个条件,b=1是一个赋值语句,将它当做条件语句时默认总为true值。

b==1才是判断b是否等于1的条件。
修改后程序如下:

#include <iostream>
using namespace std;
class yonghu
{
public:
 char mima1,mima2;
 char name[10];
public:
 yonghu();
 void zhuce();
 friend void denglu(yonghu& yh);
};
yonghu::yonghu()
{
 mima1=0;
 mima2=0;
}
void yonghu::zhuce()
{
 cout<<"请输入账号\n";
 cin>>name;
 cout<<"请输入密码\n";
 cin>>mima1;
}
void denglu(yonghu& yh)
{
 char name[10];
 cout<<"请输入账号\n";
 cin>>name;
 cout<<"请输入密码\n";
 cin>>yh.mima2;
 if(yh.mima1==yh.mima2)
  cout<<"登陆成功";
 else
  cout<<"登陆失败";
}
void main()
{
 yonghu name;
 int b,j;

 for(j=0;j<10;j++)
 {
  cout<<"欢迎使用\n"<<"注册请按1\n"<<"登陆请按2\n";
  cin>>b;
  if(b==1)
  {
   name.zhuce();
  }
  else if(b==2)
  {
   denglu(name);
   j=10;
  }
  else
   cout<<"输入无效,请重新输入!";
 }
 
}



酱油!!

上一个:用C++怎么计算很大数字的阶乘
下一个:为什么使用小A,系统自动安装C++????????????

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,