结构体
struct XX{....};
XX x;
- c++结构体中可以直接定义函数,谓之成员函数(方法)
- 在成员函数中可以直接访问该结构体的成员变量,无需"." 或 "->"
#include <iostream>
using namespace std;
struct Student{
char name[20];
int age;
void who(void) {
cout << "我叫" << name << ",今年" << age << "岁" << endl;
}
};
int main(void) {
Student s = {"张三", 28};
s.who();
return 0;
}
联合体
- 和C一样联合体中包含的若干个成员, 它们的内存是共享的, 使用它是为了节省内存
- C++ 中定义联合体, 可以省略union关键字
union XX{....};
XX x;
union {
....
};
#include <iostream>
#include <cstdio>
using namespace std
int main(void)
{
union {
unsigned int ui;
unsigned char uc[4];
}
ui=0x12345678;
printf("0x%x\n", uc[0]);
printf("0x%x\n", uc[1]);
printf("0x%x\n", uc[2]);
printf("0x%x\n", uc[3]);
}
枚举
- 和C一样用枚举是为了提高代码的可读性
- C++ 中定义枚举类型变量, 可以省略enum关键字
enum XX{.....};
XX x;
- C++中枚举是独立的数据类型, 不能当做整数类型数使用, 之前C中, 枚举可以理解为一个常数的列表, 或常数集和, 是可以当做一个整数类型数据使用的.
enum STATE{SLEEP, RUN, STOP};
STATE state;
state = 1;
state = RUN;
#include <iostream>
using namespace std;
int main(void) {
enum Color {RED , BLUE, YELLOW};
cout << RED << ',' << BLUE << ',' << YELLOW << endl;
Color c;
c = BLUE;
cout << c << endl;
return 0;
}