#include<iostream>
using namespace std;
class MM
{
public:
MM(){}
MM(string name,int age)
{
m_name = name;
m_age = age;
}
MM(MM& object);
void printMM()
{
cout << m_name << "\t" << m_age;
}
protected:
string m_name;
int m_age;
};
//拷贝构造函数
//通过传入对象属性确定创建对象的属性
MM::MM(MM& object)
{
m_name = object.m_name;
m_age = object.m_age;
cout << "调用拷贝构造函数" << endl;
}
//函数传参也可以隐式调用
void print(MM object)
{
object.printMM();
}
//引用就是取别名,形参就是实参,没有创建新的对象
//效率高,不需要调用拷贝构造函数
void printData(MM& object)
{
object.printMM();
}
int main()
{
MM mm("蔡蔡",22);
//产生了一个对象
MM beauty = mm; //隐式调用拷贝构造函数
MM girl(beauty); //显示调用拷贝构造函数
//先创建对象才赋值,不调用拷贝构造函数
MM boy;
boy = girl; //不调用拷贝构造函数,默认等号运算符重载
print(girl);
cout << endl;
printData(girl);
return 0;
}
11-10
1万+
07-07
6498
12-14
6170
04-18
718
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交