一个关于结构体嵌套的问题?

问题描述

在c#中,可以实现指向本身的结构体吗?如:一个表示任务的结构体publicstructTask{publicstringTaskName;//任务名称publicintProcessingTime;//所需工作时间publicintCost;//任务成本publicTask[]preTask;//此任务的前序任务}问题(1)不知道如此可以可行不?(2)或者采用定义类的方法,不知道选择哪个好一些?

解决方案

解决方案二:
可行。至于用类还是用结构,看你是如何处理任务的,两者都是可行的
解决方案三:
如果按照上面的代码写的话编译器提示错误:成员名称不能与它们的封闭类型相同不知道怎么解决
解决方案四:
虽然你这个结构包含自身的写法使得在结构布局中导致循环我尝试了一下,还是可以编译通过的,不知道为什么你看到编译错误,是不是有别的相关影响代码?但我不赞成这种定义方法,定义都要递归,应该会埋下奇异错误的隐患

时间: 2024-08-03 13:26:01

一个关于结构体嵌套的问题?的相关文章

c语言-结构体嵌套问题 ,内层数据的使用

问题描述 结构体嵌套问题 ,内层数据的使用 大致解释一下图中两行代码. 我做了一个嵌套的结构体, 现在是可以用pintf(): 打印内层结构体的数据 printf("%d",prestorehead->full->prestoreboole); 显示结果是小黑窗 中的 最后一个数字 1 而下一行代码要对 该数据进行运算却不可以了. 赋值, 运算都不可. 解决方案 为什么不把完整代码写出来,特别是main()函数我都没有看到啊!

c语言-C语言求助!!!写了一个返回结构体指针的函数,编译时总是提醒没有初始化q,但是初始化了。

问题描述 C语言求助!!!写了一个返回结构体指针的函数,编译时总是提醒没有初始化q,但是初始化了. 下面是源码下载:http://pan.baidu.com/s/1dDhplwH 程序是用C语言写的,VS2013编译. 这是其中使用结构体的定义 这是哈夫曼函数的定义 解决方案 创建的时候可以 -- ,*q = NULL; malloc 之后 memset(q, 0 , sizeof(--)): 解决方案二: 创建的时候可以 -- ,*q = NULL; malloc 之后 memset(q, 0

c++-请教一个MFC结构体的问题

问题描述 请教一个MFC结构体的问题 请问下MFC中的结构体和 联和有什么区别呀?联和是结构体的集和吗,我看联和里面全是结构体 解决方案 结构体是一个结构中的各个元素都给分配内存.联合是只有一块内存,联合里面的各个元素共用. 解决方案二: 一个结构体长度的问题一个关于结构体赋值的问题 解决方案三: 联合是只有一块内存,联合里面的各个元素共用.

c语言 结构体 指针-写了一个返回结构体指针的函数,编译时总是提醒没有初始化p,但是初始化了。

问题描述 写了一个返回结构体指针的函数,编译时总是提醒没有初始化p,但是初始化了. 源码 程序是用C写的,VS2013编译. 这是其中使用结构体的定义 这是哈夫曼函数的定义 解决方案 结构体指针的初始化 解决方案二: 哪有你所说的指针p啊 解决方案三: 是否用的c语言方式编译.编译器是否用c++方式编译

c++-请问一个MFC结构体数组的问题

问题描述 请问一个MFC结构体数组的问题 INPUT iput[1]; memset(iput, 0, 1 * sizeof(INPUT)); iput[0].type = INPUT_KEYBOARD; iput[0].ki.wVk = VK_ESCAPE; SendInput(1, iput, sizeof(INPUT)); 如果第一句改成INPUT iput;的话 最后一句的第二个参数前面要加上取地址,请问这是为 什么呀? 解决方案 INPUT iput[1];是一个数组类型,存储相关内容

C#调用C++编写dll,参数传递(结构体嵌套联合体)问题

问题描述 typedefstructrealprm{/*realparameter*/longprm_val;/*valueofvariable*/longdec_val;/*numberofplacesofdecimals*/}REALPRM;typedefstructiodbpsd{shortdatano;/*parameternumber*/shorttype;/*upperbyte:type*//*lowerbyte:axis*/union{charcdata;/*bit/bytepar

请帮忙写一个JAVA结构体进行参数传递

问题描述 C++H文件结体如下structSDK_COMMATTRI{intiDataBits;//数据位取值为5,6,7,8intiStopBits;//停止位intiParity;//校验位intiBaudRate;//实际波特率};//串口配置structSDK_CONFIG_COMM_X{chariProtocolName[32];//串口协议:"Console"intiPortNo;//端口号SDK_COMMATTRIaCommAttri;//串口属性};structSDK_

【C/C++学院】0817-递归汉诺塔 双层递归 /CPP结构体 /面向过程与面向对象的编程模式/类的常识共用体实现一个类的特征/QT应用于类以及类的常识

递归汉诺塔 双层递归 #include <iostream> void han(int n, char A, char B, char C) { static int num = 1; std::cout << "第" << num << "次"; num++; if (n<1) { return; } else { han(n - 1, A, C, B); std::cout << A <&l

【Go语言】【13】再谈GO语言的结构体

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://qingkechina.blog.51cto.com/5552198/1671842 本文从如下四个方面再领着大家认识结构体 匿名结构体和匿名成员的结构体 值传递和引用传递 再谈嵌套结构体 面向对象 1.匿名结构体和匿名成员的结构体 如上篇所述,一个结构体需要先声明,再初始化,最后把初始化后的结构体赋值给其它变量,例如: /*声明结构体*/ type employee struc