首页 > 编程 > C++ > 正文

C++拷贝构造函数

2019-11-08 20:15:01
字体:
来源:转载
供稿:网友

拷贝构造函数

1.如果没有自定义的拷贝构造函数则系统自动生成一个默认的拷贝构造函数

2.当采用直接初始化、复制初始化实例对象时或参数传递时系统自动调用构造函数。

Teacher.h

#include<string>#include<iostream>using namespace std;class Teacher{public:    Teacher(string _name="q",int _age=25,int _m=100);    Teacher(const Teacher &tea);    void test(Teacher t);    void teach();    void setName(string _name);    string getName();    void setGender(string _gender);    string getGender();    void setAge(int _age);    int getAge();    int getMax();PRivate:    string m_strName;    string m_strGender;    int m_iAge;    const int m_iMax;};Teacher.cpp
#include"Teacher.h"using namespace std;/*定义一个Teacher类:    自定义拷贝构造函数数据成员:            名字            性别            年龄成员函数:            数据成员的封装函数            授课teach另:            定义可以带最多学生的个数,此为常量*/Teacher::Teacher(string _name,int _age,int _m):m_strName("jim"),m_iAge(10),m_iMax(100){    cout<<"Teacher(string _name,int _age,int _m)"<<endl;}Teacher::Teacher(const Teacher &tea):m_strName("jim"),m_iAge(10),m_iMax(100){    cout<<"Teacher(const Teacher &tea)"<<endl;}void test(Teacher){}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 Teacher::getMax(){    return m_iMax;}int main(){    Teacher t1;    Teacher t2=t1;    Teacher t3(t1);    test(t1);    return 0;}

Teacher(string _name,int _age,int _m)Teacher(const Teacher &tea)Teacher(const Teacher &tea)Teacher(const Teacher &tea)
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选