学習記録20201101
無効な参照:
Type & Top()
{
return data[top];
}
int &a = ist.Top();//若此时top = 2时
ist.Pop();//出栈操作
cout << a << endl;//此时最开始的top为2的栈顶元素丢失了(不当的引用操作)
newとmalloc(C ++クラス内)の違い:
mallocはスペースを開くことのみを担当し、new(キーワード)はスペースを開くと同時にオブジェクトを作成します
newの呼び出し形式:
キーワード呼び出し:2つのアクション、スペースの申請とオブジェクトの作成
Object * op = new Object(10);//初始化
delete op;//调用析构函数
関数呼び出し:スペースにのみ適用
Object * os = (Object*)::operator new(Object);//初始化
::operator delete(os);//函数调用的方式析构
新しいポジショニング:スペースを申請しないでください
(new(os) Object(100);
os->~Object();//对象调用析构函数
知識が少ない:
size_tは符号なし整数型です。
クラス内のメソッドがオブジェクトを変更する必要がない場合は、通常のメソッドとして設計してみてください(強力な汎用性と高いセキュリティ)