-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条)

报告相同问题?

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效