已經不能從外部調用構造函數了,但是對象必須被構造,應該如何解決,麻煩大家幫忙說明,關於構造,析構函數聲明為私有和保護時的用法???
提出這個問題,說明你已經對c++有所思考了。 從語法上來講,一個函數被聲明為protected或者private,那么這個函數就不能從“外部”直接被調用了。 對於protected的函數,子類的“內部”的其他函數可以調用之。 而對於private的函數,只能被本類“內部”的其他函數說調用。 語法上就是這么規定的,你肯定也知道的咯。 那么為什么有時候將構造函數或者析構函數聲明為protected的或者private的? 通常使用的場景如下: 1。如果你不想讓外面的用戶直接構造一個類(假設這個類的名字為A)的對象,而希望用戶只能構造這個類A的子類,那你就可以將類A的構造函數/析構函數聲明為protected,而將類A的子類的構造函數/析構函數聲明為public。例如: