学習記録20201101

学習記録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は符号なし整数型です。
クラス内のメソッドがオブジェクトを変更する必要がない場合は、通常のメソッドとして設計してみてください(強力な汎用性と高いセキュリティ)

おすすめ

転載: blog.csdn.net/weixin_45137562/article/details/109490907