Point int x 0,int y 0 x xy y和Point int x 0,int y 0 x x y y的差別

2021-08-27 07:45:05 字數 3257 閱讀 9384

1樓:黃邦勇帥哥哥

區別倒沒多少,但是有些成員變數必須使用初始化列表進行初始化。

必須使用初始化列表的情形:

因為不能直接在類定義中直接初始化變數,而const型別的變數和引用型別的變數又必須在宣告時進行初始化,const型別的變數只能初始化不能進行賦值,比如hyong類中定義了const int a變數,而在hyong::hyong()這時就會發生錯誤,const變數不能賦值,只能初始化。這時就發生了毛盾,解決的方法就是使用初始化列表,即const型別的變數和引用型別的變數必須在初始化列表中初始化,比如初始化hyong類中的const變數a時就應這樣寫hyong::

hyong():a(1){}就是正確的表示式。

在類中宣告瞭const型別的變數,所有的建構函式都必須使用初始化列表的形式以便初始化const型別的變數。記住是所有的建構函式,也就是你每定義一個建構函式都必須初始化const變數。

point(int x=0,int y=0); //應加上this指標

2樓:程炫宋修平

最大的差別是第二個point的x和y得不到你預期的值,因為x=x這兩個x都被編譯器解釋為成員變數,而不是函式實參。

3樓:的橋

前面的是建構函式列表進行初始化,後面的是一般情況

在c++中 public: point(int x=0,int y=0):x(x),y(y) 這個:x(x),y(y)是 什麼意思 10

4樓:51cto學院

x(x)是呼叫父類的建構函式,這是公有繼承的特定寫法。

y(y)就是普通的建構函式,用來初始換成員變數的。

在point類的建構函式後,加一個冒號(:),然後加上父類的帶引數的建構函式。這樣,在子類的建構函式被呼叫時,系統就會去呼叫父類的帶引數的建構函式去構造物件。

5樓:匿名使用者

:x(x),y(y)是用來初始化x和y的(當你建立了一個例項,並且向這個例項傳遞引數x和y的時候)。

一道c++程式**,求解釋point(int x=0,int y=0):x(x),y(y)的意思

6樓:和藹的錯過

這個即是建構函式相當於

point( )

7樓:it孤鶩

point(int x=0,int y=0):x(x),y(y)

初始化成員變數

相當point(int x=0,int y=0)

8樓:匿名使用者

這個是初始化列表,屬於建構函式問題,建議看看譚浩強c++那本書,上面有詳細解說;

class point { int x_,y_; public: point():x_(0),y_(0){} point(int x,int y=0)}:

9樓:匿名使用者

a(2),b[3]

這兩個東西一個是變數一個是陣列,變數執行一次是沒有問題的,陣列相當於3個變數,執行3次也沒什麼問題吧。

至於指標,其實任何指標都是一個int,*c[4]的意義僅僅是4個int的陣列。

point *pp=new point;只有執行這樣的語句才會呼叫建構函式,確切的是new point這個過程才呼叫建構函式。

class point { int x_,y_; public():x_(0),y_(0){} point(int x,int y=0):x_x(),y_(y){} }; 若執行語句 po

10樓:匿名使用者

話說,你給的這段**,錯到離譜,麻煩你把正確的**放上來行不?

point類中函式point (int a=0,int b=0) {x=a;y=b;} 是

11樓:匿名使用者

》1、它的意思是不是後面定義point p1;時,p1的參

數省略了?

寫了int a=0, int b=0;表示,建立point類的時候,如版果不寫權對應的引數,就把0作為預設引數。例如:point p1就是point p1(0,0)

》2、為什麼會和函式point()產生二義性?

一個是有引數,一個是無引數。c++認為是兩個函式。

》3、 point p1(1,1)又是怎麼回事呢?會替換原來的0麼?

你指定了引數,就採用你的引數。如果沒有指定引數,就採用函式宣告時的預設引數(你這裡是0)

》 4、point (int a=0,int b) 和point (int a,int b=0) 是不是都是預設引數建構函式?

第二個是。第一個不是。設定預設引數,必須保證此引數後面的引數都有預設引數。

你見過point p1(,5);這樣的寫法嗎? :)

》5、point (int a,int b) 就不是了吧?

沒有預設引數。(可以看成普通的建構函式)

c++語法 point(int x=0,int y=0):x(x),y(y) ,請問後面的x(x),y(y)什麼意思 ?

12樓:匿名使用者

是建構函式,初始化值列表,x和y分別是屬性。即為屬性賦初值。

13樓:靜息態

建構函式,把括號內的x賦值給外面的x,完成point的初始化

14樓:匿名使用者

初始化列表,用於初始化成員變數

15樓:

結構體中,初始化列表賦初值。

16樓:洪溪灣

這是整形的初始化列表相當於x=括號裡面的值。。。你可以網上查下「初始化列表」

point(int x=0,int y=0):x(x),y(y){ count++; }我不懂

17樓:農民

就是point的夠造函式x(x)與this->x=x等價;

c++類中的建構函式:point(int x,int y)x(x),y(y){}其中x和y已被宣告

18樓:匿名使用者

建構函式的引數不要和類成員一樣。。。。。

起碼寫成point(int x_t,int y_y):x(x_t),y(y_t){}

19樓:我是遊客**

這段**的意思是初始化x=x,y=y

有如下程式,有如下程式main0inty3,x3,z1printfddn,x,y,z2答案為什是

這是逗號 表示式bai的用法,在逗號表示式du中,總體的值是逗zhi號後面那個dao 式子值,比如a 5,6 a的值應該是專6 上面式子中 x,y 相當於y 那個屬 printf語句其實跟printf d d n y z 2 效果是一樣的.後面那個3就是1 2 3 1.有如下程式,執行該程式的輸出結...

為什麼f x0 lim x x0 f x f x0x x0 ,為什麼不是f x x

導數的定義,這個就叫導數 因為f x0 意味著baif x 在x0這點是可導的du,由可導必連續可知zhi函式f x 在daox0點必內須有定義而題目只 容已知lim x 0 f x0 x f x0 x 2 x存在 並沒有說明f x 在x0這點是否有定義,所以是錯的.導數的定義 f x0 lim f...

有以下程式 mainint a 0,b 0,c 0,d 0 if a 1b 1 c 2else d 3 printfd,d,d,d n,a,b

答案是編譯有誤,樓上已經說得比較對了,此時的if判斷肯定是成立的,因為是a 1,而不是a 1.編譯有誤這個下面的else和上面的if根本就配不上隊啊,else就報錯了 1120,if括號中已經將1賦值給a並且括號整體也為1,執行if語句,所以bc值改變而d不變依然是0 答案應該是編譯有誤,因為if只...