Time of Update: 2018-12-05
近打算針對iPhone、iPod touch和iPad開發一些應用,所以,需要開始學習Objective C(蘋果推出的類似C語言的開發語言)。由於蘋果的自我封閉的產業鏈發展模式(從晶片、機器、開發語言、終端產品、服務)的限制,要想開發針對蘋果iPhone等產品的應用程式,就需要用Mac機器,在Xcode的IDE上使用Objective C語言開發。Mac機器就不用說了,那比PC機器要貴不少(當然性價比還是很高的),所以,要想廉價方式學習Objective
Time of Update: 2018-12-05
聲明:本例子描述了在建構函式拋出異常會導致資源流失的過程。通過本例子,希望我們在編寫自己的建構函式的時候,要小心一些可能的異常。如果代碼對異常考慮的不夠,那麼出現異常很有可能導致我們的資源發生泄露。例子說明一切:主要是BookEntry類的建構函式中AudioClip成員初始化的時候出現了異常,這直接導致已經構造完成的Image對象的堆記憶體沒有被正確的釋放。仔細看一下代碼,便可知。下一節,將給出通過智能指標對這個問題有一個比較完美的解決的例子。#include <iostream>
Time of Update: 2018-12-05
聲明:在看這一節之前,希望你已經閱讀過上一節展示的一個資源流失的例子程式。只有當我們發現問題的所在,再看給出的解決方案的時候,我們才會發現它的美好。這個我是深有體會,如果平平常常的拿出這個例子,也許看不出它的完美,然而如果去探索其這樣做的原因,追本溯源,去探索它一步步發展的過程,我們才真的會發現它的偉大。你不禁會驚歎一聲,智能指標,真智能。範例程式碼:通過智能指標的使用,消除了上節會出現Image堆記憶體泄露的情況。使用很簡單,思想很精髓。#include
Time of Update: 2018-12-05
異常之前說過要把異常這一大節做個匯總,這個是匯總篇,盡量用比較精簡的話來描述各個小章節的主要的內容,便於自己記憶,也便於大家查閱,可以對自己感興趣的章節重點去看,畢竟並不是每一個人都喜歡抱著書一章一章的啃的。學會挑自己需要的,也是一種藝術。個人認為:9,10,11非常重要,是一個做c++編程應該知道的技術,12,14,15作為瞭解即可,不必要做過多的研究,13是一個很實用的小tip,也很容易記憶與採納。9.利用destructors
Time of Update: 2018-12-05
現在搞iphone開發,一直不是很懂object-c的記憶體管理機制,看到apple的官方文檔寫的不錯而又沒有找到翻譯的文章。於是自己在學習它的過程中就順便把它翻譯了,自己的英語不是太好,文字組織能力那就更菜了,讀的蹩腳之處還望大家指出,我好在以後的翻譯過程中好好改正。第一次翻譯,歡迎拍磚,可不要把我拍死了呀!!!文章中帶有LPSTUDY的字樣表明是我個人的理解,可能會有不對的地方,敬請指教。文章原文連結地址:http://developer.apple.com/library/mac/#doc
Time of Update: 2018-12-05
文章目錄 1. 當一個對象從基礎收集類collection classes中刪除掉的時候2. 當父物件被釋放了
Time of Update: 2018-12-05
現在搞iphone開發,一直不是很懂object-c的記憶體管理機制,看到apple的官方文檔寫的不錯而又沒有找到翻譯的文章。於是自己在學習它的過程中就順便把它翻譯了,自己的英語不是太好,文字組織能力那就更菜了,讀的蹩腳之處還望大家指出,我好在以後的翻譯過程中好好改正。第一次翻譯,歡迎拍磚,可不要把我拍死了呀!!!文章中帶有LPSTUDY的字樣表明是我個人的理解,可能會有不對的地方,敬請指教。文章原文連結地址:http://developer.apple.com/library/mac/#doc
Time of Update: 2018-12-05
第一招虛函數通過衍生類別來進行功能擴充是基本的物件導向的方式,這種方式大如下:class base{public: virtual ~base(){} virtual void fun() { cout << "準系統" << endl; }}; class derive:public base{public: void fun() { cout << "擴充功能" << endl;
Time of Update: 2018-12-05
2009-02-26 19:33 (分類:VB) dim conn as new adodb.connection dim rs as new adodb.recordset dim sql as string conn.open "driver={microsoft access driver (*.mdb)};uid=;pwd=;dbq="amp; app.path amp; "/xxx.mdb" sql="select * from 表名" rs.open sql,conn,
Time of Update: 2018-12-05
B/S開發模式簡介和與C/S模式的比較教育技術教研室秘書 發表於 2005-4-10 17:22:00
Time of Update: 2018-12-05
書名叫《深入淺出C》。名字有盜版候捷(候俊傑)先生的《深入淺出MFC》之嫌。 一、初衷 一方面,看到還是有不少人在討論“sizeof和strlen的區別”、“指標和數組”,“值傳遞和地址傳遞”,“C到底能幹什麼”之類的問題(PS:我們公司的老程式員都在這些方面糾纏不清)。 另一方面,想我學語言三年多,雖然沒什麼成績,實踐活動還比較少,但在C語言及其相關的編譯和實現方面還是有一點點心得,寫出來也好以饗觀眾,也順便總結下自己的勞動成果。 再者,C語言之父的《The
Time of Update: 2018-12-05
前言故事的起因源自於一項“翻譯”工作,工作內容是將門戶Java版自動切換用戶端改寫成C++版。然而起始階段“翻譯”過程並不順暢,原因是雖然兩種語言文法類似,但仍有一些本質上的區別很難“直譯”。就如同我們在翻譯英文文章的時候總會發現有些單詞很難直譯成中文對應物,於是要麼生造一個詞、要麼就得繞個圈子才能解釋清楚。除此之外,我,一個用了很長時間Java後來又轉為C++開發的人來說,始終割捨不下Java那優雅的執行緒模式、所有變數(除了基本數值變數)都是引用的編程理念、只管new不需要delete的傻瓜
Time of Update: 2018-12-05
在C++中,記憶體分成5個區——堆、棧、自由儲存區、全域/靜態儲存區和常量儲存區棧,就是那些由編譯器在需要的時候分配,在不需要的時候自動清除的變數的儲存區。裡面的變數通常是局部變數、函數參數等。在一個進程中,位於使用者虛擬位址空間頂部的是使用者棧,編譯器用它來實現函數的調用。和堆一樣,使用者棧在程式執行期間可以動態地擴充和收縮。堆,就是那些由new分配的記憶體塊,他們的釋放編譯器不去管,由我們的應用程式去控制,一般一個new就要對應一個delete。如果程式員沒有釋放掉,那麼在程式結束後,作業系
Time of Update: 2018-12-05
一、一個由c/C++編譯的程式佔用的記憶體分為以下幾個部分: 1、棧區(stack)— 由編譯器自動分配釋放 ,存放函數的參數值,局部變數的值等。其操作方式類似於資料結構中的棧。 2、堆區(heap) — 一般由程式員分配釋放(malloc/free, new/delete),若程式員不釋放,程式結束後可能由作業系統回收。注意它與資料結構中的堆石兩回事,分配方式倒是類似與鏈表。其中有malloc/free分配釋放的也可以叫自由儲存區。 3、全域區(靜態儲存區)(static)—
Time of Update: 2018-12-05
如果改為:則運行正確,百思不得其解後,通過一上午的查閱資料,終於找到答案。我做了一個測試程式,截了一個圖,答案都在下面:答案已經全部在圖上。總結:1. char * p = "hello";//是在編譯時間就要確定字串的內容。 char q[] = "hello";//在運行時確定字串的內容 其中,p存放的是字串的地址,q存放的是字串本身。所以p已經初始化之後,就不能修改。 就速度而言,顯然第二種方式比第一種快。2.C語言程式記憶體配置,有下列幾個區: 像char * p = "
Time of Update: 2018-12-05
概述 在很多情況下,尤其是讀別人所寫代碼的時候,對C語言聲明的理解能力變得非常重要,而C語言本身的凝練簡約也使得C語言的聲明常常會令人感到非常困惑,因此,在這裡我用一篇的內容來集中闡述一下這個問題。 問題:聲明與函數 有一段程式儲存在起始地址為0的一段記憶體上,如果我們想要調用這段程式,請問該如何去做? 答案 答案是(*(void (*)( ) )0)(
Time of Update: 2018-12-05
學習使用C語言也N年了,但是發現卻總有一些小地方還是會忘記....就隨手記記吧!2012.12.26#include <stdio.h>void main(void){char ptr1[] = "pear";//字串數組char *prt2 = "orange";//定義一個指標,指向字串char *ptr3[2]={"apple","banner"};//定義指標數組,分別指向兩個不同字串,算是char *prt2的升級char (*ptr4)[3]={"Watermelon"}
Time of Update: 2018-12-05
OOP編程的一些概念: 一.對象(Object),這個概念可以說是物件導向裡面的最為核心的概念,如果找不著對象,又如何物件導向呢?對象,也就是你要處理的問題裡面設計的若干個因素,比如你做學產生績統計,那麼學生當然是你要考慮的對象。 二.類(Class),從本質上講是先有對象才有類,因為在處理的實際編程問題時,你面對的是一個個具體的對象,太多了,怎麼辦?分門別類,實現物以類聚,對了,將相同屬性的對象作為一類進行考慮,張三也好,李四也好,他們都是人的一個執行個體。
Time of Update: 2018-12-05
函數 - 聲明、定義、調用 1. 如果函數沒有聲明, 應該在調用前定義:#include <stdio.h>/* 定義求大值函數 */int MAX(int x, int y) { if (x > y) return x; else return y;} /* 定義求小值函數 */int MIN(int x, int y) { return x < y ? x : y;} int main(void){ int a = 5; int b = 6;
Time of Update: 2018-12-05
explicit關鍵字的用途:用來修飾建構函式避免隱式轉換。 #include <iostream>using namespace std;class a{public: a(int c){b = c;}; void show(){cout << b << endl;};private: int b;};int main(){ a bb = 1; bb.show();