深拷貝、淺拷貝建構函式

Trend科技的一道面試題:請看下面的程式,說說會出現什麼問題?#include <iostream>#include <cstdlib>#include <vector>  using   namespace   std;  class   CDemo   {  public:      CDemo():str(NULL){};      ~CDemo()       {           if(str)   delete[]   str;       }

有效運用auto_ptr

很多人聽說過標準auto_ptr智能指標機制,但並不是每個人都天天使用它。這真是個遺憾,因為auto_ptr優雅地解決了C++設計和編碼中常見的問題,正確地使用它可以產生健壯的代碼。本文闡述了如何正確運用auto_ptr來讓你的代碼更加安全——以及如何避免對auto_ptr危險但常見的誤用,這些誤用會引發間斷性發作、難以診斷的bug。1.為什麼稱它為“自動”指標?auto_ptr只是眾多可能的智能指標之一。許多商業庫提供了更複雜的智能指標,用途廣泛而令人驚異,從管理引用的數量到提供先進的代理服務

多態時最好將基類的解構函式設為virtual

多態時最好將基類的解構函式設為virtual,這樣在析構時會先調用子類的解構函式,再調用基類的解構函式,否則如果delete的是基類的指標,則只調用基類的解構函式.樣本如下:#include <iostream.h>  class Base    {    public:    Base() { mPtr = new int; }   virtual ~Base() { delete mPtr; cout<<"~Base::Base()"<<endl;}   

怎麼區分水貨與組裝機

1、外殼 新機外殼接合緊湊,縫隙處平整光滑,無毛刺。 翻新機器一般採用仿原裝外殼, 縫隙處不平整,有毛刺, 手機外殼上下兩部分容易出現閉合不緊、留有很大縫隙的現象。鑒別時可以用小手指指甲嘗試著插進手機上下蓋的接縫。如果能插進去,就是翻新機。而對外殼表面像新機一樣磨砂,且有小顆粒的手機,更是萬萬不可購買。這種機子外殼的漆是JS噴上去的,時間一長,漆就會脫落(機殼上的灰塵小顆粒,是噴漆時沒有真空環境作業造成的) 2、氣味

B繼承自A,A指標無法隱式轉換為B指標,函數參數只管指標類型,與實際指向對象無關

#include <iostream>#include <string> using namespace std; class A{}; class B: public A{}; void F( B& b){    cout<< "F( B& b)"<< endl;}void F( A& a){    cout<< "F( A& a)"<< endl;  } int _tmain(int

微軟亞洲研究院面試題

1.進程和線程的差別。   線程是指進程內的一個執行單元,也是進程內的可調度實體.   與進程的區別:   (1)調度:線程作為調度和分配的基本單位,進程作為擁有資源的基本單位   (2)並發性:不僅進程之間可以並發執行,同一個進程的多個線程之間也可並發執行   (3)擁有資源:進程是擁有資源的一個獨立單位,線程不擁有系統資源,但可以訪問隸屬於進程的資源.   (4)系統開銷:在建立或撤消進程時,由於系統都要為之分配和回收資源,導致系統的開銷明顯大於建立或撤消線程時的開銷。  

JS 數組去重

JS 數組去重JS 數組去重javascript2010-08-03 20:31:31 閱讀345評論0   字型大小:大中小 訂閱js數組去重就是把數組中重複的元素去掉:Array.prototype.delRepeat=function(){    var newArray=new Array();    var len=this.length;    for (var i=0;i<len ;i++){        for(var j=i+1;j<len;j++){      

DC儲存至BMP映像

BOOL SaveBmp(HBITMAP hBitmap, CString FileName) { HDC hDC; //當前解析度下每象素所佔位元組數 int iBits; //位元影像中每象素所佔位元組數 WORD wBitCount; //定義調色盤大小,位元影像中像素位元組大小,位元影像檔案大小,寫入檔案位元組數 DWORD dwPaletteSize=0, dwBmBitsSize=0, dwDIBSize=0, dwWritten=0;

防止可重新進入:一個有趣的類和一個很有用的宏!

這幾天在研究Todolist源碼,看到一簡短的類,很很有意思,現把源碼列下,並附上簡短說明:  // macro to help prevent re-entrancy in functions//定義一個宏AF_NOREENTRANT,防止函數中可重新進入#define AF_NOREENTRANT / static BOOL bAFInHere = FALSE; / if (bAFInHere) / return; /CAutoFlag af(bAFInHere, TRUE);class

Node與NodeVisitor

osg::ref_ptr< osg::Node> model;NodeVisitor vv( TRAVERSE_ALL_CHILDREN);   model->accept( vv);假設model的模型結構則model->accept( vv);多態,相當於調用Group::accept(NodeVisitor)。注意,我開始誤認為Group沒有對accept()進行重寫,但後來在遍曆Geode結點時,發現Geode類的定義中有一個META_Node(osg,

強指標和弱指標

在Android的原始碼中,經常會看到形如:sp<xxx>、wp<xxx>這樣的類型定義,這其實是Android中的智能指標。智能指標是C++中的一個概念,通過基於引用計數的方法,解決對象的自動釋放的問題。在C++編程中,有兩個很讓人頭痛的問題:一是忘記釋放動態申請的對象從而造成記憶體泄露;二是對象在一個地方釋放後,又在別的地方被使用,從而引起記憶體訪問錯誤。程式員往往需要花費很大精力進行精心設計,以避免這些問題的出現。在使用智能指標後,動態申請的記憶體將會被自動釋放(有

完全卸載oralce方法

 全卸載Oracle方法:軟體環境: 1、Windows XP + Oracle 10g 2、Oracle安裝路徑為:d:\Oracle1、如果資料庫配置了自動儲存管理(ASM),應該先刪除聚集同步服務CSS(cluster Synchronization Services).刪除CSS服務的方法是在DOS命令列中執行如下命令: localconfig delete2、在“服務”視窗中停止Oracle的所有服務。3、在“開始”菜單中依次選擇“程式”/“Oracle-OraDb10g_home1"

在music player下Playlists中My recordings查看錄音檔案名稱顯示錯誤

1.修改SoundRecorderService.java中    public void onScanCompleted(String path, Uri uri) 將String title = simpleDateFormat.format(date);替換成:    int separatorIndex = path.lastIndexOf("/");    String title= (separatorIndex < 0) ? path :

how to disable watchdog

Feature phone 的production release 版本上存在(1)死機無法抓取得memory dump或是(2)用JTAG分析問題時watchdog timeout了, 可以關閉watchdog去debug 問題,關閉方法如下: 11A before關閉 watchdog方法是將WDT_Enable()這個函數中的參數變為kal_FALSE。如下Application_Initialize() (init\src\init.c) like this:#ifdef

3 OSG建立渲染線程的過程

OSG建立渲染線程的過程 圖形渲染線程是靜態函數,為:static unsignedint __stdcall StartThread(void *data)它是在int Thread::start()中被調用:int Thread::start(){pd->tid.set( (void*)_beginthreadex(NULL,pd->stackSize,ThreadPrivateActions::StartThread,static_cast<void

《程式員面試寶典》錯誤題:拷貝建構函式 淺拷貝、深拷貝

#include <vector> using namespace std; class CDemo{ public: CDemo():str(NULL){} ~CDemo(){if(str) delete [] str;} char *str; }; int main() { CDemo d1; d1.str = new char[32]; strcpy(d1.str, "trend micro"); vector <CDemo> *a1 = new vector

硬碟邏輯結構簡介

 硬碟邏輯結構簡介一. 硬碟邏輯結構簡介 1. 硬碟參數釋疑  到目前為止, 人們常說的硬碟參數還是古老的 CHS(Cylinder/Head/Sector)參數. 那麼為什麼要使用這些參數,它們的意義是什麼?它們的取值範圍是什麼?  很久以前, 硬碟的容量還非常小的時候,人們採用與磁碟片類似的結構生產硬碟. 也就是硬碟碟片的每一條磁軌都具有相同的扇區數.由此產生了所謂的3D參數 (Disk Geometry). 既磁頭數(Heads), 柱面數(Cylinders),扇區數(Sectors),

心態是最大的本錢;人無完人,重要的是怎麼做人

 心態是最大的本錢;人無完人,重要的是怎麼做人    一位哲人說:"你的心態就是你真正的主人"   一位偉人說:“要麼你去駕馭生命,要麼是生命駕馭你。你的心態決定誰是坐騎,誰是騎師”。    一位藝術家說:“你不能延長生命的長度,但你可以擴充它的寬度;你不能改變天氣,但你可以左右自己的心情;你不可以控制環境,但你可以調整自己的心態。”    佛說:物隨心轉,境由心造,煩惱皆由心生。    狄更斯說:一個健全的心態比一百種智慧更有力量。    愛默生說:一個朝著自己目標永遠前進的人,整個世界都給他

gcc編譯的東東

1.分析普通的helloworld程式     先書寫一下一個簡單的helloworld程式如下:/* hello.c */int main(int argc, char * argv[]){    return 0}     編譯器:gcc -o hello hello.c     等價的編譯方法:gcc -c hello.cgcc -o hello.my -nostartfiles hello.o /usr/lib/crt1.o /usr/lib/crti.o

區分行貨和水貨

第一招 看手機串號(IMEI) 所謂手機串號,就如同手機的身份證一樣,由於每部手機的IMEI號都是惟一的,因此一般說來可以由此來判斷一部手機是否為正品。判別方法如下:在手機的待機狀態下輸人“#06#”不包括引號 ,手機顯示的一串數字即為其主板串號,將其記下;取下手機電池,看手機機身後面的兩個標籤中的白色標籤上的串號即機殼串號,另一個標籤一般是入網許可證。是否和前面記下的數字一致;再看手機封裝盒上的IMEI號,比較三者,看是否都一致。如果主板串號和機殼串號不一致,甚至主板串號無顯示或是一串奇怪的數

總頁數: 61357 1 .... 16156 16157 16158 16159 16160 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.