c&c#

问题描述

c#2.0里的所谓“新特性”相当部分其实在c++里早就有了,而且是很多年前就有了我们被微软忽悠了。先说全局标识符“::”在c++中你可以这样写你的代码:voidCDialogDlg::Onsave(){}看不明白??就是说这里的Onsave方法是CDialogDlg这个类下面的然后再说泛型,泛型可以说是c#2.0新增的又一大有用的特性。你可以在c/c++中这样写你的代码定义:template<classT>Tfunction1(Ta){returna;}调用:printf(function1("fghh"));相信很少有人在c++中写过这样的代码,但实际上他是可行的在c++中他叫template刚刚上面那个函数如果你要打印一个整数可以这样调用printf("%d",function1(1234));是不是很神奇^_^c++里也可以写这样的代码:#include<iostream>usingnamespacestd;哇哈哈同学们是不是感觉很熟悉是的没错c#里要引入一个命名空间就是这样写的说到BOOL类型我们想到的是什么TRUEFALSE?它的实质是什么?看下c++里的源码#defineFALSE0#defineTRUE1他是系统定义的两个常量,或者说是标识就是说BOOL型的变量实质是一个枚举类型,而这个枚举只有两种状态TRUE跟FALSEString相信在c#里也经常用吧,只要是编程就离不了它你见过c++里有String类型的的变量吗,没有的.c++里用这个"CString"他是被封装成的一个class说到底他是一个引用类型(String类型它的内存地址分配了就不能再改他的内容如果要连接100个字符串那么他就要分配100个内存地址)不能向整数那样直接用“+”的方式否则它的效率是很低的这就是为什么要用StringBuilder的原因,但是有初学者不知道当初我就不知道^_^c++里的访问标识符可以这样写:public:inta;floatb;c++里实例化一个对象然后调用它的方法:Class1*p1;Class1t(5);p1=&t;printf("%d",p2->aa);看不懂??这样呢:Class1*p1;p1=newClass1(5);经常在c#里写这样的东西不明其所以然只知道可以用,其实就是指针而已当初比较笨c语言讲指针数组什么数组指针那章晕了好半天呢^_^说到底不要过分去研究那些时髦的东西,老的技术总是有用处的。电脑不可能智能到不需要任何人工干预的情况下给你写出一个有用的程序来的。现在软件行业人越来越多各种开发工具越来越智能化写Helloworld越来越简单我都有点担心饭碗问题了T_T

时间: 2024-09-15 09:07:31