1. c# 在一個方法里創建一個自定義類
方法是寫在類裡面的,怎麼可能在方法里創建一個類?只能用new關鍵字創建一個類的實例,如:
Student stu = new Student();
當方法結束時,這個實例就自動沒了,就相當於是局部變數一樣
2. C 問題:如何定義一個類,使這個類只能創建一個對象
C中沒有類
C++的話:
class CSingleton:
{
// 其它成員
public:
static CSingleton * GetInstance()
{
if (m_pInstance == NULL)
m_pInstance = new CSingleton();
return m_pInstance;
}
private:
CSingleton(){};
static CSingleton * m_pInstance;
}
3. C語言的問題:如何申明一個指向任意類型函數的指針
void指針可以指向任意類型的數據,包括函數指針,亦即可用任意數據類型的指針對void指針賦值。
例如:
int * pint;
void *pvoid;
pvoid = pint; /* 不過不能 pint= pvoid; */
如果要將pvoid賦給其他類型指針,則需要強制類型轉換如:pint= (int *)pvoid;
4. 用c#語言編程 聲明一個矩陣類Rectangle,其中有多個構造方法。用不同的構造方法創建對象,並輸出矩形的周
那就直接寫就是了。是可以同時定義多個構造方法的。
5. 如何在C#中,在一個類里調用另外一個類的方法
如果要通過類名來用方法的話,那其中的方法必須是靜態方法,需加上static。即public static void get() {...}。靜態方法是跟類關聯的,允許不對classA實例化,就可以用它的方法。
把A類有引用的方法加static
public class A
public static void MethodA()//如果不是static 就要實例化才能調用
public class B
public void MethodB
A.MethodA();//第一種方式
如果MethodA()沒有加static關鍵字
則使用 new A().MethodA();
}
語言結構
類:一個基本的C#類中包含數據成員、屬性、構造器和方法。屬性可以是靜態或實例成員。在C#中類的聲明與C++和Java很相似。但是,不像C++,C#結構體與類是不支持繼承多個父類。但是,與Java相同的是,一個結構體可以實現介面(interface)。Java的關鍵字import已經被替換成using,它起到了同樣的作用。
以上內容參考:網路-c#
6. 聲明一個類,包括構造出函數,屬性,靜態方法和非靜態方法,再聲明一個派生類
對,構造函數不屬於可調用函數,它只是用於所屬類的對象在創建時用於成員初始化,所以是只為本類對象服務的。
如果基類的構造函數是無參的(默認構造函數),派生類就不需要定義。但如果基類的構造函數是有參的,而且派生類也無法在定義時確定,也就是參數來自應用程序環境,那麼派生類需要編寫對應的有參構造函數,將參數傳遞給基類初始化;而如果基類構造函數中的參數由派生類能夠確定的,那麼在派生類的無參構造函數中定義常量,傳遞給基類初始化。
比如:
//基類class A{ public: A(int a){x=a; }//基類有參構造函數 private: int x; } //派生類B,接收外部參數 class B:A{ public: B(int a):A(a){}// 派生類有參構造函數接受外部參數傳遞給基類 } //派生類C,內部傳遞給基類class C:A{ public: C():A(10){}//派生類的無參構造函數將常量10傳遞給基類初始化 }
7. objective-C中如何判斷一個類中有沒有定義某個方法
- (BOOL)respondsToSelector:(SEL)aSelector;
使用這個方法來判斷當前對象是否實現了一個方法,返回bool類型的值,yes就是實現了
8. 類的聲明和類的實現
問題好羅嗦 首先看出來你對類和對象分的就不太清楚,類是虛擬的 比如人類 而對象卻是現實存在的 是類的一個實例 人就是人類一個實例 人具有人類的一切屬性和行為 對象也一樣 對象擁有類的一切屬性和方法. 編譯器只是把代碼編譯解釋成計算機可以識別的二進制代碼,所以在內存中建立分配一個對象決不是編譯器所為.是執行那一行代碼時乾的事. 它會為類迅速分配一個空間稱為這個類的實例 就是對象 而對象名就是它的首地址 所以通過對象名可以訪問它成員 就是用到計算機所謂的偏移量方法. 當創建一個對象時會自動的調用它的構造方法 注意並不是構造方法構造對象的喲 它只是對對象做一些初始化 類自建請查類信息表