一、结构
结构:为用户自定义数据类型,一般由一个或多个基本数据类型组成,可以在其内部定义方法并包括一个构造函数,包含结构成员和方法,无法实现继承,属于值类型。结构成员分为实例成员和静态成员
声明结构:structstudent //结构名称
{
public 结构成员定义;
{
…//方法代码
}
}
声明结构变量:结构名 变量名;例:student stuExamp
结构成员 | 声明举例 | 说明 | 访问 | 访问举例 |
实例成员 | public long Name | 实例成员属于结构变量,每一个结构变量都有实例成员的不同副本。 | 必须用结构变量访问 | stuExamp.Name |
静态成员 | Public static string user="xiaoming" | 静态成员属于结构,被这个结构的所有实例成员所共享;只能由类来调用 | 可以通过结构名来访问 | Student.user |
二、函数
函数:完成某些特定功能的代码块,任何函数都是由函数说明和函数体两部分组成可分为库函数和用户自定义函数。不能嵌套定义,这样可以保证函数间是相互独立的,以实现模块化程序设计
函数类型:函数的返回值的类型
当函数无返回值时,规定其类型为Void
当函数返回值为int时,函数类型可以省略
函数类型 函数名(类型名 形式参数1,类型名 形式参数2,…..)
{ 说明部分
语句部分
}
例:
static void ChangeValue(ref int x,ref int y) //函数头
{
int temp = x; //函数体{说明部分和执行部分}
x = y;
y = temp;
}
static void Main(string[] args)
{
int i = 1, j = 2;
ChangeValue(ref i,ref j); //函数调用
Console.WriteLine("i = {0}, j = {1}", i, j);
Console.Read();
}
空函数:函数类型 函数名()
{ }
调用空函数时,什么也不做。只是表明 这里要调用一个函数,而现在这个函数的功能还没有实现
作用:预留函数,便于以后扩充程序功能
构造函数和析构函数
函数 | 含义 | 特点 |
|
构造函数 | 是一种特殊的成员函数,它主要用于在创建对象时为对象分配空间,完成初始化工作 | 1.名字必须与类名相同 2.可以带参数,但没有返回值 3.通过new运算符在对象定义或创建时被自动调用 4.可以重载但不被继承 5.如果没有定义,系统会自动默认 | class <类名> { public: <类名>(参数表) //...(还可以声明其它成员函数) }; <类名>::<函数名>(参数表) { //函数体 } |
析构函数 | 是一种特殊的成员函数,当对象脱离作用域时,它主要用于释放类实例,与构造函数相反 | 1.名字必须与类名相同,但它前面加了一个“~”符号 2.不能带参数,没有返回值 3.当撤销对象时,析构函数被自动调用 4.不能被继承也不能被重载 5.如果没有定义,系统会自动默认 6.只能有一个析构函数 | class <类名> { public: ~<类名>(); }; <类名>::~<类名>() { //函数体 } |