C++构造函数

构造函数的规则和特点:

1.构造函数在对象实例化时被自动调用

2.构造函数与类同名

3.构造函数没有返回值,不用写类型

4.构造函数可以有多个重载形式

5.实例化对象时仅用到一个构造函数

6.当用户没有定义构造函数时,编译器自动生成一个构造函数。

 

构造函数的参数不能随意的赋给  特别是不能和无参数的构造函数和全部赋予初值的构造函数同时使用

Teacher.h

#include<string>
#include<iostream>

using namespace std;

class Teacher
{
public:
    
    Teacher();
    Teacher(string _name,int _age=25);
    
    void teach();
    void setName(string _name);
    string getName();
    void setGender(string _gender);
    string getGender();
    void setAge(int _age);
    int getAge();
private:
    string m_strName;
    string m_strGender;
    int m_iAge;
};
Teacher.cpp
#include"Teacher.h"

using namespace std;
/*定义一个Teacher类:
    自定义无参构造函数
    自定义有参构造函数
数据成员:
            名字
            性别
            年龄
成员函数:
            数据成员的封装函数
            授课teach
*/
Teacher::Teacher()
{
    m_strName="jin";
    m_iAge=19;
    cout<<"Teacher"<<endl;
}
Teacher::Teacher(string _name,int _age)
{
    m_strName=_name;
    m_iAge=_age;
    cout<<"Teacher(string _name,int _age)"<<endl;
}
void Teacher::teach()
{
    cout<<"现在上课"<<endl;
}
void Teacher::setName(string _name)
{
    m_strName=_name;
}
string Teacher::getName()
{
    return m_strName;
}
void Teacher::setGender(string _gender)
{
    m_strGender=_gender;
}
string Teacher::getGender()
{
    return m_strGender;
}
void Teacher::setAge(int _age)
{
    m_iAge=_age;
}
int Teacher::getAge()
{
    return m_iAge;
}

int main()
{
    Teacher t1;
    Teacher t2("sam",22);
    Teacher t3("mery");


    cout<<t1.getName()<<","<<t1.getAge()<<endl;
    cout<<t2.getName()<<","<<t2.getAge()<<endl;
    cout<<t3.getName()<<","<<t3.getAge()<<endl;

    return 0;
}

Teacher
Teacher(string _name,int _age)
Teacher(string _name,int _age)
jin,19
sam,22
mery,25


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值