C++、C#语法结构优缺点、适用的场合及发展态势

最好能举实例,谢谢~
HAL9000PLUS哥哥,能给个实例和解析吗?加分~

0分。唉。

C++与C#在语法上差不多。

C++更面向物理机器,需要自己处理内存的使用问题,对程序员的保护少,但是限制也少,有指针功能,可以OOP。由于底层,可以实现任何功能。但是容易出错,不容易掌握。

C#更面向应用级的问题,需要在.net平台上才能编译和运行。有垃圾内存内集机制,程序员可以不关心内存的管理,专心于逻辑的实现。但C#也可以利用unsafe代码来处理指针。
另外,.net也提供了大量已经写好的类库,用于封闭操作系统功能,可供C#使用。

C++目前用于面向OS的基础api应用,而C#目前主要用于各种应用级的方案开发,如网站,应用程序。

0分。唉。

-----------------------
关于内存管理的例子, 如一个双链表的实现:

C++:

class LINKNODE
{
public:
LINKNODE *pPrev ;
LINKNODE *pNext ;

void *pData;

public:
inline void LINKNODE();
};

void LINKNODE::LINKNODE()
{
this->pPrev = null;
this->pNext = null;
}

main()
{
// 创建第一个节点
CString s = "hello";
LINKNODE *pHead, *pNode;
pNode = new LINKNODE;
pNode->pDate = &s;
pHead = pNode;

// 加一个节点。
pNode->pNext = new LINKNODE;
pNode->pNext->pPrev = pNode;
pNode->pNext->pData="abcde";

...

// 销毁对象,回收内存
LINKNODE p = pHead;
while(p != null)
{
delete p->pData; // 自己回收内存
LINKNODE pTmp = p->Next;
delete p; // 同上。
p = pTmp;
}

}

--------------------------------------
C#:
class LINKNODE
{

public LINKNODE Prev ;
public LINKNODE Next ;

public object oData;

public LINKNODE()
{
this.Prev = null;
this.Next = null;
}
}

main()
{
// 创建第一个节点
string s = "hello";
LINKNODE Head;
LINKNODE Node = new LINKNODE();
Node.oDate = s;
Head = Node;

// 加一个节点。
Node.Next = new LINKNODE();
Node.Next.Prev = pNode;
Node.Next.oData = "abc";

// ...

// 销毁时,只需要直接给个null就完了,甚至,连null也不给,忘记了这事就行了。

pHead = null;

------------------------
以上例子,在.net里有内置类List来实现。如:

List<Object> lst = new List<Object>();
lst.Add("Hello");
lst.Add("abc");

...
lst.Clear();

}
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网