感悟:C++是一门语法非常严谨的语言,只是指针就很难掌握,这其中肯定要经历很多折腾,特别是自学者。
折腾了一年半的C++,在即将毕业之际,对Unity3d游戏开发感兴趣,先是用cocos2dx开发了个人游戏,但是cocos2dx的坑绝对深,只是3D模块的模型导入就不支持fbx文件,而是写了一些不常有的3维软件的解析,制作3D游戏的标准看来还没有统一。
1、C#指针:C#限制用户声明指针,连使用都受到非常大的限制,个人感觉与其不要用。
2、C#的数组声明:
//声明一维数组 int []array1; int []array2 = new int[5];//声明并初始化大小 int []array3 = new int[5]{1,3,5,7,9};//声明并初始化元素 int []array4 = {1,3,5,7,9};//或者这样来创建 //声明二位数组 string [ , ] str1=new string[2,3]; string [ , ] str2 = {{1,2,3},{4,5,6}}; //交叉数组 //交错数组是一维数组,且每个元素自身是一个数组。作为元素的数组无需均为相同的大小,交错数组是储存数组的数组。 string [][]=new string[2][];//这是C++二维数组的声明
foreach()访问数组中的元素
int []number={1,2,3,4,5,6,7,8,9}; foreach(int i in number) { System.Console.Write(i); } //C++基于范围的for循环 for(int i : number) { cout<<i<<endl; } //c++遍历容器方法for_each for_each(book.begin(),book.end(),out);
对象数组:
创建对象数组(而非创建像整数这样的简单数据类型的数组)的过程分为两个部分。首先声明数组,然后必须创建存储在数组中的对象。
namespace CDCollection { // Define a CD type. class CD { private string album; private string artist; private int rating; public string Album { get {return album;} set {album = value;} } public string Artist { get {return artist;} set {artist = value;} } public int Rating { get {return rating;} set {rating = value;} } } class Program { static void Main(string[] args) { // Create the array to store the CDs. CD[] cdLibrary = new CD[20]; // Populate the CD library with CD objects. for (int i=0; i<20; i++) { cdLibrary[i] = new CD(); } // Assign details to the first album. cdLibrary[0].Album = "See"; cdLibrary[0].Artist = "The Sharp Band"; cdLibrary[0].Rating = 10; } } }
//对象数组是这样的。