sounderme 2015-10-24 11:40 采纳率: 0%
浏览 2507

c++ 构造函数初始化报错如何解决

#include
#include
using namespace std;
class Teacher
{public:
Teacher();
Teacher(string name,int age) ;//如果对age进行初始化并且在main函数中实例化 一个 t5(“Vivion”)为什么会报错
Teacher(const Teacher&tea);
void setName(string _name);
string getName();
void setAge(int _age);
int getAge();

private:
string m_strName;
int m_iAge;
} ;

Teacher::Teacher()
{ m_strName="jim";
m_iAge=5;
cout<<"Teacher() "<<endl;
}
Teacher::Teacher(string name,int age)
{ m_strName=name;
m_iAge=age;
cout<<"Teacher(string name,int age)"<<endl;
}
Teacher::Teacher(const Teacher&tea)
{ cout<<"Teacher(const Teacher&tea)"<<endl;
}
void Teacher::setName(string _name)
{m_strName=_name;}
string Teacher::getName()
{return m_strName;}
void Teacher::setAge(int _age)
{m_iAge=_age;}
int Teacher::getAge()
{return m_iAge;}

int main(void)
{ Teacher t1;
Teacher t2("merry",15);
Teacher t3("Jame",20);
Teacher t4=t1;
cout<<t1.getName()<<" "<<t1.getAge()<<endl;
cout<<t2.getName()<<" "<<t2.getAge()<<endl;
cout<<t3.getName()<<" "<<t3.getAge()<<endl;
return 0;

}

  • 写回答

4条回答 默认 最新

  • 普通网友 2015-10-24 13:24
    关注

    #if 1
    #include
    using namespace std;

    class Teacher
    {
    public:
    Teacher();
    Teacher(string name,int age=0);//如果对age进行初始化并且在main函数中实例化 一个 t5(“Vivion”)为什么会报错
    Teacher(const Teacher&tea);
    void setName(string _name);
    string getName();
    void setAge(int _age);
    int getAge();
    private:
    string m_strName;
    int m_iAge;
    };

    Teacher::Teacher()
    {
    m_strName="jim";
    m_iAge=5;
    cout<<"Teacher() "<<endl;
    }
    Teacher::Teacher(string name,int age)
    {
    m_strName=name;
    m_iAge=age;
    cout<<"Teacher(string name,int age)"<<endl;
    }
    Teacher::Teacher(const Teacher&tea)
    {
    cout<<"Teacher(const Teacher&tea)"<<endl;
    }
    void Teacher::setName(string _name)
    {m_strName=_name;}

    string Teacher::getName()
    {return m_strName;}

    void Teacher::setAge(int _age)
    {m_iAge=_age;}

    int Teacher::getAge()
    {return m_iAge;}

    int main(void)
    {
    Teacher t1;
    Teacher t2("merry",15);
    Teacher t3("Jame",20);
    Teacher t4=t1;
    Teacher t5 = ("sds");
    return 0;
    }
    #endif

    以上是我的代码,运行没有问题,不知道你是怎么去写的?你是不是给函数声明和定义都写了默认参数?那样的话会报参数重定义错误。

    评论

报告相同问题?

悬赏问题

  • ¥15 gradio的web端页面格式不对的问题
  • ¥15 求大家看看Nonce如何配置
  • ¥15 Matlab怎么求解含参的二重积分?
  • ¥15 苹果手机突然连不上wifi了?
  • ¥15 cgictest.cgi文件无法访问
  • ¥20 删除和修改功能无法调用
  • ¥15 kafka topic 所有分副本数修改
  • ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
  • ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
  • ¥40 串口调试助手打开串口后,keil5的代码就停止了