-nasher 2021-06-03 19:56 采纳率: 50%
浏览 36
已采纳

c++面向对象编程初学 问题(大佬看我)

#include<iostream>
using namespace std;
class Employee
{protected:char *address,*shi,*province,*post;
public:Employee(char _address[100],char _shi[100],char _province[100],char _post[100]);
void changename();
};

class Name{
protected:
    char firstname[20],lastname[20];
    int x,y,z;
    char *m;
public:
    Name(char *p){
        cin>>firstname>>lastname;
        p=firstname;
        for(int i=0;i<20;i++)
        {
        if(p[i]='\0')
            x=i;break;
        }
    z=0;
        for(int i=x;i<40;i++)
    {
        p[i]=lastname[z];
        z++;
        if(p[i]='\0')
            break;
    }
        m=p;
    }
    void display()
    {
        for(int i=0;i<40;i++)
        cout<<m[i]<<endl;
    }
}; 
Employee::Employee(char _address[100],char _shi[100],char _province[100],char _post[100])
{address=_address,shi=_shi,province=_province,post=_post;}
void Employee::changename(){}

int main()
{    char *a="no name";
    Name na(a);
    na.display();

}

 

 

 

 

求大佬帮我看看为什么不管输入什么都没输出结果啊??

  • 写回答

4条回答 默认 最新

  • CSDN专家-link 2021-06-03 20:43
    关注
    #include<iostream>
    using namespace std;
    
    class Employee
    {protected:char *address,*shi,*province,*post;
    public:Employee(char _address[100],char _shi[100],char _province[100],char _post[100]);
    	   void changename();
    };
    class Name{
    protected:
    	char firstname[40];
    	char lastname[20];
    	int x,y,z;
    	char *m;
    public:
    	Name(char *p){
    		cin>>firstname>>lastname;
    		p=firstname;
    		for(int i=0;i<20;i++)
    		{
    			if(p[i]=='\0')
    			{
    				x=i;
    				break;
    			}
    		}
    		z=0;
    		for(int i=x;i<40;i++)
    		{
    			p[i]=lastname[z];
    			z++;
    			if(p[i]=='\0')
    				break;
    		}
    		m=p;
    	}
    	void display()
    	{
    		for(int i=0;i<40;i++)
    		{
    			if(m[i] == 0)
    				break;
    			cout<<m[i];
    		}
    	}
    }; 
    Employee::Employee(char _address[100],char _shi[100],char _province[100],char _post[100])
    {address=_address,shi=_shi,province=_province,post=_post;}
    void Employee::changename(){}
    int main()
    {    
        char *a="no name";
        Name na(a);
        na.display();
    }

    if(p[i]=='\0')
                {
                    x=i;
                    break;
                }

    这里要加大括号,不然break不在if里,循环都不继续执行就跳出了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能