學著有些糊涂了,想知道以下兩種創建對象有什么區別?例子如下
比如如下類A的構造函數:
A(int?x=3,int?y=4) { key=x; value=y; } A?*p;//第一種 A??*q=new?A(?);//第二種 兩種效果是一樣的么,為什么很多時候感覺用第二種多?
比如如下類A的構造函數:
A(int?x=3,int?y=4) { key=x; value=y; } A?*p;//第一種 A??*q=new?A(?);//第二種 兩種效果是一樣的么,為什么很多時候感覺用第二種多?
2020-04-13
舉報
2020-05-17
我的理解是第一種只是聲明了一個指針p,該指針用來存儲類A的地址,但并沒有指向哪一個具體類,因為沒有給他開辟可用的類A的空間。第二種是聲明指針q的同時還在堆中開辟了一個新的可用的類A空間,并將該空間的起始地址賦值給q,相當于第一種形式的A *p;p=new A();這是我個人的理解,小白還望大佬指點?