初始化列表操作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