C,C++,C#note
1.c++中的類的定義和聲明可以都寫在頭文件中,然后cpp文件include頭文件;也可以聲明在頭文件,定義在cpp文件;或者所有聲明和定義都放在cpp文件;混寫定義與聲明在頭文件與cpp文件也可以;
如下:
頭文件:
#pragma once
class Client
{
public:
Client(void);
int count;
? ? char *ip;
static int count1;
char printf(char *msg);
? ?int function(int a,int b)
? ?{
? int c=a+b;
?return c;
? ?}
? ?int function1(int a,int b);
public:
~Client(void);
};
源文件:
#include "StdAfx.h"
#include "Client.h"
#include "winsock.h"
Client::Client(void)
{}
char Client::printf(char *msg)
{
return *msg;
}
int Client::function1(int a,int b)
{
return a-b;
}
Client::~Client(void)
{}
2.C++和c一樣全局變量放在函數(shù)外,如果全局變量聲明和定義不在調(diào)用者前程序?qū)?#xff0c;則只能在定義點(diǎn)到程序結(jié)尾方可調(diào)用,如果這樣需要全局變量前加上extern;
3.extern是引用全局變量的修飾符;
4.c++中new對(duì)象是手動(dòng)釋放,class A自動(dòng)釋放,class A=new class()是手動(dòng)釋放,需要delep(實(shí)例);
5.類的指針實(shí)例需要->例如class A,普通對(duì)象是.例如 ?class *A?
6.::是域操作符
7.
new操作符創(chuàng)建一個(gè)對(duì)象時(shí)所執(zhí)行的工作如下:
1。從托管堆(managed heap)中分配指定類型所需要數(shù)量的字節(jié)作為存儲(chǔ)該對(duì)象的內(nèi)存空間。
2。初始化對(duì)象的附加成員,每一個(gè)對(duì)象包含兩個(gè)附加成員。CLR使用這兩個(gè)對(duì)象來管理對(duì)象實(shí)例。
2.1一個(gè)是指向該類型方法表的指針。
2.2一個(gè)是用于線程同步控制和垃圾收集的SyncBlockIndex。
3。傳入new操作符中指定的參數(shù),調(diào)用類型的實(shí)例構(gòu)造函數(shù)。
8.c#中類型的聲明是給某個(gè)匿名的未知的類的對(duì)象建立類型的所需內(nèi)存,而內(nèi)存中只是聲明了這個(gè)類型的成員,包括內(nèi)部成員的所需內(nèi)存和方法的鏈接,而沒有對(duì)其進(jìn)行實(shí)例化;所以這個(gè)過程只是在棧內(nèi)存中存儲(chǔ)所需的成員名(成員只是聲明沒有實(shí)體,功能是確定成員內(nèi)存大小以供引用)和方法鏈接,用new 的話才是在堆上開空間,創(chuàng)對(duì)象,調(diào)用構(gòu)造函數(shù)。
4.變量名沒有實(shí)際的內(nèi)存分配,只是指定查詢變量的路徑,路徑原則與文件夾路徑相似。
5.計(jì)算機(jī)程序語言中的變量名實(shí)質(zhì)上就是代表一個(gè)內(nèi)存地址的名稱(別名)。
6.函數(shù)內(nèi)的局部變量作用域只限于此函數(shù)本身,主調(diào)函數(shù)中的變量不會(huì)對(duì)被調(diào)函數(shù)中的局部變量產(chǎn)生影響,只有被調(diào)函數(shù)的函數(shù)形參會(huì)受主調(diào)函數(shù)的影響。;局部變量和全局變量命名相同時(shí)函數(shù)中的局部變量會(huì)將全局變量覆蓋,局部變量有效。;函數(shù)定義階段最外部的變量作用域大,(類似于局部變量中的全局變量,影響里面的代碼變量結(jié)構(gòu)等);
7.函數(shù)的調(diào)用實(shí)質(zhì)上是從代碼段搜尋函數(shù)地址調(diào)用,而函數(shù)的形參和局部變量存儲(chǔ)在棧中,堆中則存放一些指針?biāo)赶虻膶?duì)象,new產(chǎn)生的類,數(shù)組等。
總結(jié)
以上是生活随笔為你收集整理的C,C++,C#note的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c#的接口详解
- 下一篇: c# char unsigned_dll