孝感网站建设软件,怎么用php做网站,南宁网站建设找哪家好,深圳保障性住房申请条件一、枚举 enum
1.普通枚举#xff0c;枚举在C中使用比C使用简单
C语言:
enum Color
{red,green,blue
};
enum Color c red;C语言
enum Color
{red,green,blue
};
Color c red;C认为这种枚举方式会污染名字#xff0c;即#xff1a;枚举使用的名字#xff0c;在同一个作…一、枚举 enum
1.普通枚举枚举在C中使用比C使用简单
C语言:
enum Color
{red,green,blue
};
enum Color c red;C语言
enum Color
{red,green,blue
};
Color c red;C认为这种枚举方式会污染名字即枚举使用的名字在同一个作用域不能被变量使用
C希望 red green blue……等枚举变量应该被限制在 Color 作用域里面。类比 struct,假设在 struct中定义了一个叫 Node 的结点变量Node可以在struct 外部任何地方使用而且外部也能定义 Node。但是枚举不行在创建了一个枚举后在整个作用域内相同变量名不能被重新使用。
struct Student
{int id;char[20] name;
};
enum Person
{id,name,sex
};
struct Student stu;
stu.id 20;
int id 10;
// id这个变量名在 struct Student 作用范围内仍然可以使用并且不影响 struct Student中的变量。enum Person per name;
int name 18; // 报错
// 在枚举中使用的变量名 name 不能被作用范围中其他变量定义使用2.C范围枚举
2定义和使用
enum class 枚举名{成员.....
};Color c Color::red;2示例代码
#include iostream
using namespace std;// 普通枚举
enum Color
{red,green 20,blue
};// 范围枚举
enum class Person
{name,sex 44,age
};// 范围枚举
enum class Student
{name,sex 21,age
};int main()
{cout 普通枚举 endl;Color c green;cout c c endl;cout red red endl;cout blue blue endl;cout 范围枚举 endl;Person per Person::sex;Student stu Student::sex;cout 输出 Person sex : (int)per endl;cout 输出Person sex : (int)stu;system(pause);return 0;
}
3在C中使用枚举需要注意的事项
1.对于普通枚举C可以使用 枚举名 变量名 枚举成员eg: Color c red;
C可以使用这样的方式直接去定义变量而不需要加上 enumeg: enum Color c red; // 可以不用这样去定义变量2.对于普通枚举C/C可以直接使用 cout/printf 直接输出枚举变量的值eg: cout c endl;printf(%d\n,c);这里 会对 枚举变量进行隐式转换3.对于范围枚举C必须使用 :: 来获取枚举变量的值eg: Person per Person::sex;使用 Person per sex; // 会发生错误4.对于范围枚举,想要输出枚举变量的值必须做强制类型转换eg: cout 输出 Person sex : (int)per endl;使用 cout per endl; // 会发生错误二、结构体 Struct
C和C的区别体现在结构体中
1C中的 struct
在C语言中结构体struct是一种用户自定义的数据类型用于组织多个不同类型的数据成员。
**定义**结构体通过 struct 关键字进行定义通常位于函数外部可以包含多个数据成员每个成员可以是任意类型的数据。**成员访问**结构体的成员使用点操作符.进行访问通过结构体变量的名字加上成员名来访问具体的成员。**默认访问权限**C语言中的结构体成员默认是public的可以在任何地方被访问。**没有成员函数**在C语言中结构体只能包含数据成员不能包含成员函数。**无继承**C语言中的结构体不能进行继承操作即不能有父类和子类的概念。**没有构造函数和析构函数**C语言中的结构体没有构造函数和析构函数的概念结构体的初始化和清理工作通常由程序员手动完成。
2C中的struct
**定义**结构体通过 struct 关键字进行定义与C语言中的结构体类似但在C中结构体可以包含成员函数、构造函数、析构函数等。**成员访问**结构体的成员仍然可以使用点操作符.进行访问但在C中可以使用 - 操作符访问结构体指针的成员。**默认访问权限**C中的结构体成员默认是private的可以使用访问修饰符如public、private、protected来控制成员的访问权限。**成员函数**C中的结构体可以包含成员函数这意味着结构体不仅可以用来组织数据还可以定义与数据相关的操作。**继承**C中的结构体可以被继承可以有父类和子类的概念可以使用继承和派生等面向对象的特性。**构造函数和析构函数**C中的结构体可以有构造函数和析构函数用于对象的初始化和清理工作可以通过构造函数进行初始化析构函数进行资源的释放。
三个访问限定修饰符public: 公开的外界可以直接访问private: 私有的外界不能直接访问里面可以直接访问protected: 受保护的外界不能直接访问里面可以直接访问它的儿子可以访问这个设计是为了继承而来的没有继承的时候不需要使用当遇到访问限定修饰符后接下来没有遇到下一个访问限定修饰符后中间的所有内容都是按照这个访问限定修饰符的访问方式eg:class Student{public:int a;int b;private:};
a,b都是 public 的访问方式。struct 默认访问方式为 public 公有
class 默认访问方式为 private 私有struct/class的基本使用语法建议使用class
struct/class 类名
{默认的访问方式访问限定符:……访问限定符:……
};eg: 描述一个人
class Person
{char* name;int age;public:void Print_Name(); // 成员函数void Print_Age(){cout age endl;}// C的封装// private 只能在类内访问// public 可以在类内 和 类外访问// protected 只能在类内访问不能再 类外访问它的儿子可以访问
};