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

报告相同问题?

悬赏问题

  • ¥15 关于react-hook组件用函数控制是否渲染的及时性问题。
  • ¥50 Linux下的软件,要做模块化拆分。进程间通信是否有开源框架可以借用?
  • ¥100 修改原有的MYSQL存储代码,在最右边添加多列数据
  • ¥20 Open Interpreter 使用时报错: still has pending operation at deallocation, the process may crash
  • ¥15 qt中链接动态链接库,调用其中的函数,该函数的参数需要传入回调函数,自己创建的回调函数无法作为参数传递进去
  • ¥15 如何把api接口返回的json数据自动计算分页自动执行并写入mysql数据库。
  • ¥15 matlab svm二分类代码问题
  • ¥40 求一款能支持ios15以上的屏蔽越狱插件。比较好用的
  • ¥15 C++ QT对比内存字符(形式不定)
  • ¥30 C++第三方库libiconv 远程安装协助