初始化列表操作const也没啥用啊,第一次实例化const定义的值就固定了,再次实例化同一类时,const定义的值永远是第一次的
2019-10-27
int main(void)
{
// 通过new方式实例化对象*stu
Student *stu = new Student;
// 更改对象的数据成员为“慕课网”
stu->setName("慕课网");
// 打印对象的数据成员
stu->getName();
return 0;
}
{
// 通过new方式实例化对象*stu
Student *stu = new Student;
// 更改对象的数据成员为“慕课网”
stu->setName("慕课网");
// 打印对象的数据成员
stu->getName();
return 0;
}
using namespace std;
class Student
{
public:
Student(){}
Student(string _name):m_strName(_name){}
Student(const Student& stu){}
~Student(){}
void setName(string _name){m_strName = _name;}
string getName(){cout << m_strName << endl; }
private:
string m_strName;
};
class Student
{
public:
Student(){}
Student(string _name):m_strName(_name){}
Student(const Student& stu){}
~Student(){}
void setName(string _name){m_strName = _name;}
string getName(){cout << m_strName << endl; }
private:
string m_strName;
};
老师没说如何拷贝对象,只说拷贝构造函数在哪些情况下会被调用。
Teacher t3(t1),将t1拷贝给t3,有如下两种方法:
1.在拷贝构造函数定义时在函数内部进行赋值:
Teacher (const Teacher & tea)
{
m_strName =tea.m_strName;
}
2.运用拷贝构造函数的初始化列表:
Teacher(const Teacher &tea) : m_strName(tea.m_strName), m_age(tea.m_age) {}
可以看到,拷贝构造函数只是构造函数的一种特殊类型而已,他满足构造函数的性质:可在内部赋值也可进行初始化列表操作。
Teacher t3(t1),将t1拷贝给t3,有如下两种方法:
1.在拷贝构造函数定义时在函数内部进行赋值:
Teacher (const Teacher & tea)
{
m_strName =tea.m_strName;
}
2.运用拷贝构造函数的初始化列表:
Teacher(const Teacher &tea) : m_strName(tea.m_strName), m_age(tea.m_age) {}
可以看到,拷贝构造函数只是构造函数的一种特殊类型而已,他满足构造函数的性质:可在内部赋值也可进行初始化列表操作。
2019-09-16