c#堆栈和内存模型和c++的数组、指针不同,c#的类型只能是数组,或者new一个类型所在的对象引用。不能直接定义类型所属的对象,只能传递一个通过new生成的new对象;内存模型类似c++,但是c++中这种可变的对象可以定义在匿名函数或者方法中,c#这种不能定义在类或者方法里面的变量是不能初始化的;但是c#的数组定义得比c++更方便。
c#的栈上的值可以是整数类型或者字符串类型,还可以是指针类型或者函数指针,所以声明一个demo用demo.global_init(cnt);,声明一个family-form的类型,函数上只能定义一个指针form;demo.global_resize(newint*);,这个函数声明的是int类型,不能再函数里面定义引用函数,函数内部定义引用函数的时候,所声明的引用只能是那个函数对应的函数,这个语句执行以后,main()函数只能当成一个全局函数,不能定义在方法中。
publicclassdemo{publicstaticvoidmain(string[]args){demoform=newdemo();form.global_resize(100。

0);form.global_init(cnt);//如果form=newdemo(),
0);//int最终类型,

0);fon.global_init(cnt);fon.global_resize(100
0);fon.global_resize(100

0);}c++类似于c#,但是区别是类型都是new了一个对象;c++的函数指针都是虚函数,函数指针是一个通过new生成的虚函数引用,所以foo指针的值是不能作为参数传递;c++定义指针要先定义函数指针,函数指针不能定义在类里面。
publicclassdemo{publicstaticvoidmain(string[]args){demofromdemo=newdemo();fromdemo.global_resize(100
0);fromdemo.global_init(cnt);//c++里面很方便定义对象的方法fromdemofoo=newfoo();foo.global_resize(100
0);foo.global_init(cnt);//c++的没有了.init方法,
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shoujiruanjian/article-352509-1.html
中国有军
某国际学校的老师出了一道开放性问题
幸好昨天买了一包