摘要:
构造函数的作用是初始化实例的非静态(static)数据成员,以及在函数体内的一些由程序员指定的工作。 析构函数的作用则与构造函数相反,是将实例所动态申请的资源(在函数体内由程序员控制,如果操作不当,将造成内存泄漏),并销毁实例的非静态(static)数据成员。 构造函数的函数名与类名相同,没有返回值 阅读全文
摘要:
List<>是除了数组外,我最常用的泛型容器,与C++的vector类似,是顺序结构而不是链式结构。 LinkedList<> 是C#中的泛型链表,与C++的list类似,是链式结构。 Dictionary<> 是C#的泛型hash表 HashTable 是C#的hash表,但键值对都是object 阅读全文
摘要:
priority_queue是C++的优先队列,优先队列是指具有在出队时,最高优先级的元素先出特征的队列。 其头文件为#include <queue> priority_queue操作与queue类似,但priority_queue在入队和出队时会对内部元素按规则进行排序。 其定义为 templat 阅读全文
摘要:
const与指针的组合,可能会稍微有点令人困扰。 const的作用是限定一个对象为常量,在定义const 对象后, 对象的值在程序中将不能被改变。 指针*是一种对象(用来存储其他对象的内存地址),它可以指向另外一个对象。 如果const与指针组合起来,const是限定指针对象,还是限定指针指向的对象 阅读全文
摘要:
刷题——支持加减乘三种运算和括号的计算器 以"12+(2*(3-4))*5"为例子,利用递归的方法。 //以"12+(2*(3-4))*5"为例子 int solve(string s) { //返回对应数值 if (s.empty()) return 0; else { int result = 阅读全文
摘要:
答案是有的。 尽管抽象类不能直接进行实例化,但是继承类会调用该抽象类的构造函数。如果没有手动定义一个构造函数,编译器会自动为其创建一个无参,访问等级为protected的构造函数。 另外,如果手动为抽象类创建一个无参或有参的构造函数,编译器将不再自动创建构造函数,并且如果只有有参且参数没有默认值的构 阅读全文
摘要:
刷题——进制转换 将十进制的整数转换成其他进制的整数 由于十六进制的数值带有字符的,所以返回的值为字符串。 /* 进制转换 * @param M int整型 给定整数 * @param N int整型 转换到的进制 * @return string字符串 */ string solve(int M, 阅读全文
摘要:
Cull是用来剔除面片不需要渲染的方向的面的。 在渲染的时候,默认设置是Cull Back,即剔除背面(与法反同向的面),也就是只有前面(与法向同向的面)才会被渲染, Cull 有三种Cull Off 不剔除Cull Back 剔除背面(与法向反向的面)Cull Front 剔除前面 (与法向同向的 阅读全文
摘要:
对于简单类型,如int、char、float等的没有析构函数的类型,在申请动态数组时, char* a = new char[10]; delete a; 和 char* a = new char[10]; delete [] a; 之间的并没有区别。 但是对于复杂类型,即类型里申请了动态内存,需要 阅读全文
摘要:
在类(外部类)的内部声明的类称为内部类。如果与其他成员的访问性类似,私有(private)的内部类,只能在外部类里进行实例化,公共(public)的内部类则所有类均可调用,interal和protected也同理。 内部类:若外部类是静态类,则内部类能访问外部类的一切成员。若外部类是普通类,则内部类 阅读全文