求解释c++结构体。。。

问题描述

求解释c++结构体。。。

struct Snake
{
Snake() :next(NULL), before(NULL)
{
pt.x = 0; pt.y = 0;
}
Snake(const POINT &npt, Snake *, Snake *);
POINT pt;
Snake * next, *before;
} snake; //定义蛇头
在学windows api,找了个贪吃蛇,这段代码实在看不懂了,求大神解释一下,或者用类来代替一下也好

解决方案

Snake() :next(NULL), before(NULL)
Snake构造函数,设定next,before为NULL

解决方案二:

结构体和类根本上区别不大,区别只是结构体默认的是public权限,类默认是pravite.
简单注释了一下,仅供参考

 struct Snake
{
Snake() :next(NULL), before(NULL)   // 默认构造函数,初始化参数列表使得next=NULL.before=NULL
{
pt.x = 0; pt.y = 0;     // 初始化坐标为(0,0)
}
Snake(const POINT &npt, Snake *, Snake *);  // 另外一种构造函数,参数为一个坐标的const引用和两个结构体指针
POINT pt;
Snake * next, *before;
} snake; //定义蛇头

解决方案三:

这个类和结构没什么区别的。改成class CSnake也没有什么多少不同的。
具体解释,得看看贪吃蛇的说明,还有cpp中的实现
这里就提供了两个构造函数,蛇这个结构是个双向列表,可以向前或向后查找。

时间: 2024-07-28 12:19:25

求解释c++结构体。。。的相关文章

(C语言完结)结构体在汇编中的表现形式

一丶了解什么是结构体,以及计算结构体成员的对其值以及总大小(类也是这样算) 结构体的特性 1.结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合 2.在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类. 结构体可以被声明为变量.指针或数组等,用以实现较复杂的数据结构.结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问.[1] 高级代

结构体字节对齐

在用sizeof运算符求算某结构体所占空间时,并不是简单地将结构体中所有元素各自占的空间相加,这里涉及到内存字节对齐的问题.从理论上讲,对于任何 变量的访问都可以从任何地址开始访问,但是事实上不是如此,实际上访问特定类型的变量只能在特定的地址访问,这就需要各个变量在空间上按一定的规则排列, 而不是简单地顺序排列,这就是内存对齐. 内存对齐的原因: 1)某些平台只能在特定的地址处访问特定类型的数据: 2)提高存取数据的速度.比如有的平台每次都是从偶地址处读取数据,对于一个int型的变量,若从偶地址

c语言-关于C语言结构体指针类型的强制转换(求大神详细解答)

问题描述 关于C语言结构体指针类型的强制转换(求大神详细解答) #include <iostream> #include <algorithm> using namespace std; typedef struct { string dna; int count; }DNA; DNA dna[101]; **int cmp(const void *a,const void *b) { DNA *aa = (DNA *)a; DNA *bb = (DNA *)b; return a

c-顺序表 结构体 求指教

问题描述 顺序表 结构体 求指教 #include #include #include #define MAXSIZE 100 typedef struct{ char *name; char *Num; }DataType; DataType re1,re2,re3; typedef struct{ DataType *data; int length; }SeqList; //初始化 void InitList(SeqList *L) { L->data=(DataType*)malloc(

跪求安卓客户端如何接收Ubuntu系统过来的结构体协议,还有应该怎么发送过去

问题描述 跪求安卓客户端如何接收Ubuntu系统过来的结构体协议,还有应该怎么发送过去 安卓客户端怎么接受C语言写的结构体协议,应该怎么发送到服务器端进行数据交互 解决方案 如果是直接序化 c 的结构体,就要了解 c 结构体的内存布局.还有内存大小端问题 如果在安桌端用的是 java / c# 等.来反序化原始的 c结构内存数据,有点烦人. 建议选用 protobuf ans1 等格式化 解决方案二: 两边约定好就可以,或者序列化成json,xml. 解决方案三: 现在这个问题,,已经解决了,,

一道用 sizeof 求结构体所占大小的笔试题?求教

问题描述 一道用 sizeof 求结构体所占大小的笔试题?求教 下列程序,为什么输出的结果是 120? int main(int argc, char* argv[]) { union u_type { int i; double x; float f; }; struct str_type { char str[100]; union u_type u[2]; }; printf("%dn",sizeof(struct str_type)); } 解决方案 首先union u_typ

调试-求大神~~ c free()结构体指针出错

问题描述 求大神~~ c free()结构体指针出错 本人菜鸟一枚,调试程序时发现下面的程序只要用free()来释放结构体指针就出错,百思不得其解,望大师指正!非常感谢啦! 注:本人用的是VC6.0.自己写的C程序,私心揣测难道是结构体指针特殊一点,或者我释放的方式不对~ 补充:C-Free 5.0上选择mingw5调试则没有问题!到底哪里有问题? #include <stdio.h> #include <stdlib.h> #include <malloc.h> st

C结构体定义问题 struct 求详解

问题描述 C结构体定义问题 struct 求详解 typedef struct node { int data; struct node* next;// 这个地方注意结构体变量的定义规则 } Node, *PNode; struct node* next 这句看不懂啊,有没有大神帮忙详解一下. 解决方案 这个一般是链表中定义一个结点用到的结构体 struct node* next的意思就是定义了一个指针叫next,这个next指针指向的元素的类型是struct node * 这个next指针一

c#-C# 引用C++的dll,在C# 如何获取结构体的句柄 作为传入参数,求高手帮忙。

问题描述 C# 引用C++的dll,在C# 如何获取结构体的句柄 作为传入参数,求高手帮忙. C++ 结构体如下 typedef struct tagHIP { USHORT dhcp_enable; //DHCP使能 USHORT reserve; //保留 CHAR ip[HIP_BUF_LEN_32];// 设备IP CHAR netmask[HIP_BUF_LEN_32]; CHAR gateway[HIP_BUF_LEN_32]; CHAR mac[HIP_MAC_LEN_20]; C