青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 195,  comments - 30,  trackbacks - 0
例如:
class ObjectB{};

class ObjectA{
public:
    ObjectB array[5];//對象數組作為類的成員
}

那樣的話對象數組的初始化會變得很麻煩,
因為數組名不能作為左值,所以不可以指針傳遞的方式賦值。
而且不能通過參數列表(構造函數后面加一個冒號)的方式初始化,
所以只能讓類ObjectA自動調用類ObjectB的無參構造函數.
---------------
#include <iostream.h>
#include 
"stdlib.h"
class   ObjectB{
public:
    
int a;
public:
    ObjectB(
int m=0)
    
{
        a
=m;
    }

}
;
class   ObjectA
public:
        ObjectB   Array[
5]; 
public
        ObjectA(
int   *p)
        
{
            Array[
0]=ObjectB(p[0]);
            Array[
1]=ObjectB(p[1]);
            Array[
2]=ObjectB(p[2]);
        }
 
}
;

int main()
{
    
int p[5]={0,2,2,3,4};
    ObjectA am
=ObjectA(p);
    cout
<<am.Array[1].a<<endl;
    
return 0;
}

---------------

我們可以使用替代方式:
class A{};

classB{
public:
    A*a;//A類型的指針作為類的成員
}
同樣帶來很大的問題,
(1)淺拷貝,深拷貝的問題,除非重載拷貝構造函數,類B才能實現深拷貝,因為成員中有指針,所以無法簡單的用拷貝構造函數生成一個新對象,而用無參構造函數生成的新對象也會有問題,因為里面的指針一般都默認為NULL了。

重載拷貝構造函數的時候需要申請一定長度的內存,將拷貝對象的指針所指向的空間拷貝到新申請的空間,再進行操作。注意申請后要釋放。
一個拷貝構造函數的例子
SparseMatrix::SparseMatrix(const SparseMatrix&s)
    
{
      Rows
=s.Rows;
   Cols
=s.Cols;
   Count
=s.Count;
   smArray
=new Trituple[6];
//此處還需要復制對象
    }


----------------------
補充知識:
------------------http://www.ksarea.com/articles/20070829_memory-partition-stack-heap-difference.html

C/C++應該是大學里最先接觸的編程語言,它們的重要性不言而喻。但是我始終抱著“數組名就是指針”的錯誤信條到現在,可能是因為大學老師錯誤的講解使我一直保留著這種誤解。指針是C/C++語言的特色,而數組名與指針有太多的相似,甚至很多時候,數組名可以作為指針使用,所以也難免在學習中將兩者混淆。這里介紹下指針和數組名的區別:

1.指針和數組名占據的內存空間大小不一樣,如下程序1:

char str[10];
char *pstr=str;
cout<<
cout<<sizeof

第一行輸出結果是:10,第二行輸出結果是:4

從這里我們可以看出:數組名對應著(而不是指向)一塊內存(數組所占的內存區域)或者說是指代數組這種數據結構,其地址與容量在生命期內保持不變,只有數組的內容可以改變。指針對應著一個占據4個字節(Win32)的內存區域,而指向這4個字節所存儲的地址所對應的內存單元,它可以指向任意類型的內存塊。因此,sizeof(str)值為數組占據的內存空間大小即10個字節,而sizeof(pstr)值為指針的值占據的內存空間大小即4個字節。

2.數組名不是指針,但是在一定的情況下轉換為指代數組的首地址的指針,而這個數組名轉為的指針只能是指針常量。
在以下兩種情況下才能進行這種轉換:
a.在程序1第二行代碼中,將數組名直接賦值給指針,此時數組名轉換為指向數組的首單元的常量指針。
b.直接將數組名作為指針形參的時候,數組名則轉換為指向數組的首單元的常量指針進行傳遞,如下程序2:

void fun(char str[])
{
cout<<
str++;
}
void main()
{

char str1[5];
fun(str1);

}

注意:數組名作為函數形參進行傳遞時,在子函數體內,它已經不再是一個指針常量,而是變成一個真正的指針,可以進行增減等操作,可以被修改。所以程序2中子程序第一條語句輸出的sizeof(str)的值為4.

既然數組名可以被看作指針常量,而常量是不能修改的,那么如下代碼是不允許的:

char str[10];
str++;

但如下代碼則合法的:

char str[10];
char *pstr=str;
pstr++;

3.使用指針訪問數組和使用數組名訪問數組本質不同。
例如:

char str[7]=”ksarea”;
char *pstr=str;
cout<<<


其中str[3]和pstr[3]返回的都是字符’r',但是編譯器產生的執行代碼卻不一樣。對于str[3],執行代碼是從str開始,向后移動兩個字節,然后取出其中的字符;而對于pstr[3],執行代碼是從pstr中取出地址,然后在其上加3,然后取出對應內存中的字符。當然,如果pstr是指向int型的指針,那么pstr[3]的處理過程是從pstr中取出地址,然后在其上加上3*sizeof(int),最后取出對應內存中的字符,其他的數據類型一次類推。
posted on 2011-02-14 01:08 luis 閱讀(6571) 評論(0)  編輯 收藏 引用 所屬分類: 格式.輸入輸出.數據類型
<2011年2月>
303112345
6789101112
13141516171819
20212223242526
272812345
6789101112

常用鏈接

留言簿(3)

隨筆分類

隨筆檔案

文章分類

文章檔案

友情鏈接

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲欧美伊人| 亚洲欧美成人一区二区三区| 久久嫩草精品久久久精品一| 99国产一区二区三精品乱码| 欧美国产日韩视频| 国产精品久久久久国产精品日日 | 蜜臀av国产精品久久久久| 一区二区冒白浆视频| 一区二区三区毛片| 亚洲在线免费| 性久久久久久久久| 猫咪成人在线观看| 久久综合给合久久狠狠狠97色69| 欧美一区二区精品| 麻豆视频一区二区| 国产日韩欧美精品一区| 一区二区三区在线看| 日韩视频一区二区| 欧美在线关看| 亚洲国产精品t66y| 亚洲午夜视频在线| 久久精品一区蜜桃臀影院| 欧美黄色aa电影| 国内精品久久久久久久97牛牛| 日韩一区二区福利| 久久久精品一区| 亚洲精品美女91| 亚洲欧美日韩成人| 欧美日韩中字| 亚洲美女中文字幕| 久久午夜精品一区二区| 亚洲私人影院| 欧美日韩在线一区二区| 亚洲精品久久久久久久久久久久| 久久国产精品毛片| 亚洲欧美日韩国产中文| 欧美日韩视频| 99在线精品视频| 黑人一区二区三区四区五区| 欧美在线国产| 亚洲综合视频网| 国产美女在线精品免费观看| 香蕉久久久久久久av网站| 中文在线资源观看网站视频免费不卡 | 免费毛片一区二区三区久久久| 国产一区二区三区高清| 久久久精品国产99久久精品芒果| 亚洲综合日本| 国语自产精品视频在线看一大j8 | 亚洲电影av| 亚洲黄色在线| 国产精品一区久久久久| 久久琪琪电影院| 欧美日本一区| 午夜日韩福利| 欧美成年人在线观看| 亚洲一区视频在线| 久久精品国产亚洲一区二区三区 | 亚洲精品影院| 99国产精品视频免费观看一公开| 国产精品一区2区| 在线看欧美日韩| 99视频精品| 亚洲国内高清视频| 香港成人在线视频| 亚洲理论在线| aa国产精品| 欧美v亚洲v综合ⅴ国产v| 欧美日韩精品在线| 国产精品天美传媒入口| 欧美午夜片在线观看| 精品成人一区二区三区| 一区二区欧美精品| 最新日韩在线视频| 欧美中文字幕视频| 欧美日韩精品| 久久久精品性| 蜜臀va亚洲va欧美va天堂| 欧美成人自拍| 免费观看久久久4p| 伊人精品成人久久综合软件| 久久精品二区亚洲w码| 久久精品国产久精国产爱| 国产精品福利久久久| 亚洲成人在线视频网站| 玖玖玖免费嫩草在线影院一区| 午夜天堂精品久久久久| 国产精品高潮在线| 欧美自拍偷拍| 亚洲精品久久嫩草网站秘色| 一区二区精品在线| 国产日韩精品视频一区| 亚洲一区二区三区高清| 午夜国产精品视频| 亚洲人成网站色ww在线| 欧美国产日本高清在线| 一区二区三区高清视频在线观看| 亚洲午夜性刺激影院| 久久亚洲精品视频| 亚洲一二三区在线观看| 黄色av成人| 国产麻豆精品在线观看| 免费一级欧美在线大片| 亚洲在线播放电影| 欧美激情91| 快播亚洲色图| 亚洲夜晚福利在线观看| 亚洲国产精品日韩| 国产美女精品免费电影| 国产精品高清网站| 欧美电影免费观看高清完整版| 亚洲香蕉视频| 宅男噜噜噜66一区二区 | 99精品99| 久久综合精品国产一区二区三区| 性欧美1819性猛交| 欧美一区影院| 欧美在线关看| 免费久久99精品国产| 欧美激情视频在线免费观看 欧美视频免费一| 美女精品视频一区| 女女同性女同一区二区三区91| 免费看亚洲片| 欧美精品七区| 国产精品久久久久一区二区三区共 | 亚洲福利一区| 国产一区日韩欧美| 伊人久久男人天堂| 亚洲视频免费看| 亚洲欧美日韩视频一区| 99热免费精品| 亚洲一区二区三区色| 性欧美大战久久久久久久免费观看| 136国产福利精品导航网址| 日韩视频二区| 久久久久九九九| 久久中文精品| 亚洲国产精品福利| 一区二区三区欧美激情| 亚洲欧美乱综合| 美女在线一区二区| 一本色道久久| 久久久噜噜噜久久人人看| 欧美剧在线免费观看网站| 欧美激情一区二区三级高清视频| 欧美视频官网| 精品不卡视频| 亚洲图片欧洲图片av| 免费一区二区三区| 正在播放日韩| 欧美在线观看你懂的| 欧美日韩视频一区二区| 亚洲丰满少妇videoshd| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 国产精品久久久久国产a级| 狠狠色狠色综合曰曰| 久久米奇亚洲| 久久久久久亚洲精品杨幂换脸| 亚洲大胆女人| 亚洲国产精品va在线看黑人动漫| 免费不卡视频| 中文在线资源观看视频网站免费不卡| 亚洲第一在线视频| 欧美女同在线视频| 欧美一区二区免费视频| 亚洲欧美日韩国产中文| 国产日韩欧美在线观看| 美日韩免费视频| 欧美精品国产| 亚洲一级在线观看| 亚洲欧美日韩在线高清直播| 亚洲精品久久久久久久久久久久| 欧美日韩中文在线观看| 夜夜嗨av色一区二区不卡| 欧美激情中文字幕乱码免费| 欧美日韩精品免费在线观看视频| 亚洲精品在线免费观看视频| 99pao成人国产永久免费视频| 欧美剧在线免费观看网站| 欧美一区二区高清| 欧美三级日本三级少妇99| 老牛影视一区二区三区| 美女日韩在线中文字幕| 亚洲专区国产精品| 欧美成人一区二区| 欧美尤物巨大精品爽| 欧美大片网址| 久久国产精品99久久久久久老狼| 欧美国产三级| 久久精品观看| 国产午夜精品视频免费不卡69堂| 亚洲激情欧美| 亚洲国产毛片完整版| 亚洲视频每日更新| 亚洲欧美日韩成人高清在线一区| 欧美激情精品久久久久久免费印度| 欧美大胆人体视频| 99视频超级精品| 国产农村妇女精品一二区| 亚洲视频电影图片偷拍一区|