最贊回答 / onemoo
一般提到堆棧,實(shí)際上指的是“?!?stack)。這個(gè)名詞在很多地方都會(huì)用到:它是一種數(shù)據(jù)結(jié)構(gòu)。在描述內(nèi)存時(shí):一個(gè)進(jìn)程的地址空間的不同區(qū)域會(huì)有不同的用途。 其中有?堆區(qū)(heap)和 棧區(qū)(stack)。函數(shù)的調(diào)用是在棧中運(yùn)作的,函數(shù)中的那些變量也都在棧中。其實(shí)程序中的大部分變量都在棧中,畢竟程序大量存在函數(shù)調(diào)用(main函數(shù)本身也是函數(shù))。而手動(dòng)申請(qǐng)內(nèi)存(new出來的)構(gòu)造的變量就在堆中。
2015-09-26
已采納回答 / onemoo
不用包含.cpp文件,實(shí)際上根本不應(yīng)包含任何含有實(shí)現(xiàn)的文件。Coordinator.h 中含有Coordinator類的定義(不是類實(shí)現(xiàn))。C++中的符號(hào)只要提前聲明就可使用。對(duì)類來說,有了類定義就可以使用這個(gè)類。對(duì)函數(shù)來說,有了函數(shù)原型的聲明,就可以進(jìn)行函數(shù)調(diào)用。把函數(shù)和類的聲明單獨(dú)寫在 .h 文件中就是為了讓其他想要使用它們的源文件只要include這些“頭文件”就可以使用了。
2015-09-11
已采納回答 / onemoo
這個(gè)pCoor只是指針本身是const,并不是所指的對(duì)象是const的。所以只是這個(gè)pCoor本身不能更改(不能指向其他Coordinate對(duì)象),而pCoor所指的coor1是可以被更改的。所以調(diào)用普通成員函數(shù)沒有問題。你所說的那種指針應(yīng)該這樣聲明:<...code...>
2015-09-11
最新回答 / 等候稻香
解決方案:頭文件和源文件都在同一個(gè)項(xiàng)目中(即Coordinate.h和Coordinate.cpp一起放在項(xiàng)目中),頭文件中定義方法,在源文件中實(shí)現(xiàn),并且方法前加上Coordinate::,關(guān)鍵是Coordinate.cpp中加上include “stdafx.h””stdafx.h“的原理:編譯器通過一個(gè)頭文件stdafx.h來使用預(yù)編譯頭文件。stdafx.h這個(gè)頭文件名是可以在project的編譯設(shè)置里指定的。編譯器認(rèn)為,所有在指令#include "stdafx.h"前的代碼都是預(yù)編譯的,它跳過#...
2015-09-08
已采納回答 / onemoo
這兩種寫法對(duì)于有默認(rèn)構(gòu)造函數(shù)的類對(duì)象來說沒有區(qū)別,這兩種寫法都是調(diào)用其默認(rèn)構(gòu)造函數(shù)。所以如果Coordinate有默認(rèn)構(gòu)造函數(shù),這樣的寫法就沒區(qū)別。沒有默認(rèn)構(gòu)造函數(shù)的話,這兩種寫法都編譯不過。另外,這兩種寫法對(duì)于built-in類型是有區(qū)別的:不帶括號(hào)時(shí),構(gòu)造的對(duì)象是default?initialized,對(duì)于built-in類型,這種情況下初值是不確定的。帶空括號(hào)時(shí),對(duì)象是value?initialized,對(duì)于built-in類型來說,初值一般是0。
2015-09-05
已采納回答 / AAnonymous
p1 是一個(gè)對(duì)象, 分配在棧上p2是一個(gè)指針,指向p1這個(gè)對(duì)象,即p2指向p1在棧上的地址(并沒有創(chuàng)建新的對(duì)象)Coordinate *p2 = new Coordinate(); 才創(chuàng)建了新的對(duì)象,在堆上
2015-08-31
最贊回答 / 走進(jìn)科學(xué)
1.如果有多個(gè)成員數(shù)據(jù),構(gòu)造函數(shù)可以一次給多個(gè)成員數(shù)據(jù)設(shè)定初始值,set函數(shù)一般都是一個(gè)成員數(shù)據(jù)對(duì)應(yīng)一個(gè)set函數(shù).一次只能設(shè)定一個(gè).2.構(gòu)造函數(shù)只能設(shè)定初始值,如果設(shè)定了初始值之后,又想要再更改這個(gè)值.那么就只能用set了.
2015-08-25