object-c的繼承

作為物件導向的程式設計語言,object-c當然也支援繼承,而且和java一樣,支援的是單一繼承,即只有一個超類。當然,也支援覆蓋(或重寫)父類的同名方法。例子如下: 1. 代碼: //1. MyRectangle.h#import <Foundation/NSObject.h>@interface MyRectangle: NSObject {    int width;    int height;}-(MyRectangle*) initWithWidth: (int) w

object-c中的對象的釋放

和C++不同的是,object-c中並沒有規定說一定要實現一個建構函式和解構函式;所以,在object-c中,其實沒有建構函式和解構函式這樣的概念,取而代之的應該是對象的創造和初始化,對象的釋放。與對象的釋放相關的關鍵字,最基本的有dealloc,release, autorelease,用它們就可以進行對象的釋放。執行個體代碼如下:1. 定義ClassA如下 :#import <Foundation/Foundation.h>   @interface ClassA :

object-c的存取許可權(public/protected/private)

和C++,Java等物件導向程式設計語言一樣,object-c中對於資料成員可以設定它們的存取權限,它規定了外部實體如何來訪問這些資源。例如:1. 代碼:     //Access.h#import <Foundation/NSObject.h>@interface Access: NSObject {@public    int publicVar;@private    int privateVar;    int privateVar2;@protected    int

object-c的動態識別與isKindOfClass,isMemberOfClass等

object-c提供了一批用於檢測一個對象是不是某個類的對象或成員,它們是isKindOfClass,isMemberOfClass,respondsToSelector,instancesRespondToSelector,performSelector等,下面給出了這些函數的一些用法。1.代碼:// MyRectangle類和Square類略(它們的定義見前一節“8.object-c的繼承”),// main.m#import "Square.h"#import

object-c的靜態變數(static)

object-c的"+"類似於C++中的靜態函數,它可以訪問由static聲明的變數。執行個體如下:1. 代碼://ClassA.h#import <Foundation/NSObject.h>static int count;@interface ClassA: NSObject +(int) initCount;+(void) initialize;@end////ClassA.m#import "ClassA.h"@implementation ClassA-(id)

object-c的Categories

Categories允許使用者為某個類添加新的方法(不能添加新的資料成員),而不用繼承的方式來實現。並且,即使沒有某個類的實現源碼,仍然可以這樣做。執行個體如下:一.  例1:在不用Fraction源碼的情況下,為Fraction添加幾個數學(math)方法。 1. 代碼:     需要把之前編譯好的Fraction.o和Fraction.h放到和下面檔案的同一個目錄下,例如,這裡是FractionMath目錄。    //1. FractionMath.h#import

object-c的protocol(協議)

在object-c中,協議的聲明類似於類介面的聲明,但是,協議沒有父類,而且不能定義成員變數,只能定義成員函數,而且成員函數並不是在這個協議中實現,而是要在使用它的類中實現。 1. 使用說明:   (1)協議的聲明方式,在.h中:       @protocol Myprotocol          -(void) myProtocolMethod;       @end   (2)協議的運用:      如果要使用一個協議,就要在聲明類的時候,

object-c的Retain and Release(保留與釋放)

          在object-c中,系統自動會為每個建立的對象儲存一個引用計數器。當對象被建立時,引用計數設定為1,每一次必須保持該對象時,需要發送(即調用)retain來使得引用計數加1。不再需要對象時,可以發送release訊息,使得引用計數減1。當引用計數為0的時候,系統就會釋放它的記憶體(通過向對象發送dealloc訊息,也就是真正地去回收對象的記憶體)。另外,可以用retainCount來得到這個對象的引用計數,返回的類型是NSUInteger整數。基本的調用方式如下:[obj

object-c的Dealloc

當你自己的類中包含有其它對象時,就得負責dealloc它們,通過重寫dealloc函數。1. 例子代碼://1. AddressCard.h#import <Foundation/NSObject.h>#import <Foundation/NSString.h>@interface AddressCard: NSObject {    NSString *first;    NSString *last;    NSString

C語言 HTTP上傳檔案

      通常情況下,一般很少使用C語言來直接上傳檔案,但是遇到使用C語言編程實現檔案上傳時,該怎麼做呢?      藉助開源的libcurl庫,我們可以容易地實現這個功能。Libcurl是一個免費易用的用戶端URL傳輸庫,主要功能是用不同的協議串連和溝通不同的伺服器,libcurl當前支援DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP,IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP,

C語言中的整數自動轉換原則

有符號數與無符號數之間運算問題以下實驗均在virual c++6中運行通過這個問題測試是否懂得C語言中的整數自動轉換原則,有些開發人員懂得極少這些東西。當運算式中存在有符號類型和無符號類型時所有的運算元都自動轉換為無符號類型。因此,從這個意義上講,無符號數的運算優先順序要高於有符號數,這一點對於應當頻繁用到無符號資料類型的嵌入式系統來說是豐常重要的。 首先進行一個實驗,分別定義一個signed int型資料和unsigned int型資料,然後進行大小比較:    unsigned int a=

C/C++如何解決大數組問題?

編了一晚上的程式,結果因為數組太大不能運行:segmentation……取找解決方案:這個比較適用!贊   方法一:     在VC的Project   setting裡的link選項卡裡把棧開大一點(windows裡預設是4M)     方法二:     聲明成全域或static的,這兩種變數不壓棧,想開多大都可以     方法三:     int   *A   =   new   int[90000];     .....     delete   A;     方法四:  

最全的C/C++面試題解(1)

嵌入式開發.C語言面試題前置處理器(Preprocessor)1. 用預先處理指令#define 聲明一個常數,用以表明1年中有多少秒(忽略閏年問題)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在這想看到幾件事情: 1). #define 文法的基本知識(例如:不能以分號結束,括弧的使用,等等) 2). 懂得前置處理器將為你計算常數運算式的值,因此,直接寫出你是如何計算一年中有多少秒而不是計算出實際的值,是更清晰而沒有代價的。 3).

最全的C/C++面試題解(2)

1. 以下三條輸出語句分別輸出什嗎?[C易]char str1[] = "abc";char str2[] = "abc";const char str3[] = "abc"; const char str4[] = "abc"; const char* str5 = "abc";const char* str6 = "abc";cout << boolalpha << ( str1==str2 ) << endl; //

C++面試題zz

  前幾天參加了一個公司的面試,做了一份C++的面試題,回來後發現是一本書上的原題,故特此將題目和標準答案找出發了上來,供大家參考。 附錄B :C++/C 試題本試題僅用於考查C++/C 程式員的基本編程技能。內容限於C++/C 常用文法,不涉及資料結構、演算法以及深奧的文法。考試成績能反映出考生的編程品質以及對C++/C 的理解程度,但不能反映考生的智力和軟體開發能力。筆試時間90 分鐘。請考生認真答題,切勿輕視。一、請填寫BOOL , float, 指標變數與“零值”比較的 if 語句。(1

C/C++ 筆試、面試題 1—15

1.求下面函數的傳回值(微軟)int func(x){int countx = 0;while(x){countx ++;x = x&(x-1);}return countx;}假定x = 9999。 答案:8思路:將x轉化為2進位,看含有的1的個數。2.

C/C++ 筆試、面試題 16–42

 16. 關聯、彙總(Aggregation)以及組合(Composition)的區別?涉及到UML中的一些概念:關聯是表示兩個類的一般性聯絡,比如“學生”和“老師”就是一種關聯關係;彙總表示has-a的關係,是一種相對鬆散的關係,彙總類不需要對被彙總類負責,如所示,用空的菱形表示彙總關係:從實現的角度講,彙總可以表示為:class A {...} class B { A* a;

幾道C語言的題目

【1 使用宏】 1.1    #ifdef NDEBUG     #define TRACE(S) S    #else     #define TRACE(S) printf("%s;/n", #S); S    #endif 問:以上TRACE()宏的作用是什嗎? 1.2 #error的作用? 1.3 定義一個宏,求出給定數組中的元素的個數 #define NELEMENTS(array) ?? 1.4 定義一個宏,求出給定結構中給定成員的位移量

C/C++數組名與指標區別詳解

指標是c/c++語言的特色,而數組名與指標有太多的相似,甚至很多時候,數組名可以作為指標使用。於是乎,很多程式設計者就被搞糊塗了。而許多的大學老師,他們在c語言的教學過程中也錯誤得給學生講解:/"數組名就是指標/"。很幸運,我的大學老師就是其中之一。時至今日,我日複一日地進行著c/c++項目的開發,而身邊還一直充滿這樣的程式員,他們保留著/"數組名就是指標/"的誤解。  想必這種誤解的根源在於國內某著名的c程式設計教程。如果這篇文章能夠糾正許多中國程式員對數組名和指標的誤解,筆者就不甚欣慰了。藉

淺談C記憶體配置1

關於C語言記憶體方面的話題要真說起來的話那恐怕就沒頭了,所以本文僅僅是一個淺談。關於記憶體問題不同平台之間有一定的區別。本文所指的平台是x86的Linux平台用C語言做程式(其實其他語言也一樣),不僅要熟悉文法,其實很多相關的背景知識也很重要。在學習和研究C語言中記憶體配置的問題前,首先要瞭解一下Linux分配給進程(運行中的程式)的地址空間是什麼樣的。總的來說有3個段,即程式碼片段,資料區段和堆棧段(學過彙編的朋友一定很熟悉了)。程式碼片段就是儲存程式文本的,所以有時候也叫做文本段,指令指標中

總頁數: 4314 1 .... 1753 1754 1755 1756 1757 .... 4314 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.