草庐IT

c++ - 如何在结构/类中获取有关 "current type"的信息?

是否有可能在struct中获取“当前struct的类型”?例如,我想做这样的事情:structfoobar{intx,y;booloperator==(constTHIS_TYPE&other)const/*WhatshouldIputhereinsteadofTHIS_TYPE?*/{returnx==other.x&&y==other.y;}}我试过这样做:structfoobar{intx,y;templatebooloperator==(constT&t)const{decltype(*this)&other=t;/*Wecanuse`this`here,sowecanget"

c++ - 使用 engGetVariable 在 MATLAB R2014a 中检索结构时出错

#include#include"engine.h"usingnamespacestd;intmain(){cout通过这个示例C++程序,我试图从MATLAB中读取一个结构。但是程序在mxArray*K=engGetVariable(ep,"PHOTOSS_TEMP3");行卡住,我收到错误消息:ErrorusingsaveCan'twritefilestdio.这里也是生成文件:g++-I/usr/local/MATLAB/R2014a/extern/include-O0-g3-Wall-c-fmessage-length=0-MMD-MP-MF"matlab_error.d"-M

c++ - 序列化结构的 STL 映射

我正在尝试序列化一个STL映射,其中键和值是结构。当键是一个结构并且值是一个int时,附加的代码工作正常。但是,我在设置序列化函数来处理结构值时遇到问题。有关如何执行此操作的任何建议?非常感谢-安德鲁。#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusingnamespacestd;structportfolio_data{doublea;};st

c++ - 在具有菱形继承和虚拟基类的类中调用函数的策略

如果我们有菱形继承并使用公共(public)虚拟基类,我们可以阻止第一个构造函数被多次调用。现在,我想对构造函数之外的函数做同样的事情。例如代码:#includestructA{virtualvoidfoo(){std::cout产生结果ABACD我想修改它,让它只产生ABCD什么样的策略或模式可以做到这一点?编辑1与以下相比,我更喜欢TonyD的回答。尽管如此,理论上可以使用另一个类的构造函数来定义适当的函数层次结构。具体#includestructA;structB;structC;structD;namespacefoo{structA{A(::A*self);};structB

C# 编码 C++ 结构继承

假设我在C++中有以下结构structBase{USHORTsize;}structInherited:publicBase{BYTEtype;}我想在C#中编码Inherited但结构继承在C#中不起作用。做以下是否合适?publicinterfaceIBase{ushortSize{get;set;}}[StructLayout(LayoutKind.Sequential)]publicstructInherited:IBase{publicushortSize{get;set;}publicbyteType{get;set;}}我在这里简化了问题,我的结构更大,因此很难验证结果。

C++ 如何使以有序方式读取和存储 100 个字符的二维数组 [500][500] 成为可能?

我有一个编程作业,它需要存储最多100个char二维数组,大小最大为500*500,以及与每个数组关联的4个数字。它应该是这样的:structBLOCK{shortx1;shorty1;shortx2;shorty2;charpoints[500][500];};程序必须读取这样的输入:pidentifier_1x1y1x2y2...identifier_px1y1x2y2在哪里p-将声明多少个BLOCK(范围1-100)identifier-BLOCK的标识符(范围1-10000)x1y1x2y2-在此上下文中不重要。重点是他们描述的二维数组最大可达500*500。当我尝试输入p>9

c++ - 编写同时适用于 C 和 C++ 的结构代码

我知道定义和使用struct的两种可能方式:#1structperson{charname[32];intage;};structpersondmr={"DennisRitchie",70};#2typedefstruct{charname[32];intage;}person;persondmr={"DennisRitchie",70};第一种方式的有趣特性是类型和变量可以具有相同的名称:structpersonperson={"SamPersson",50};这是C中的惯用语吗?它保证在C++中工作吗?或者是否有我应该注意的极端情况?请注意,我对纯C++答案不感兴趣(例如“使用st

c++ - 结构作为基类 - C/C++ 互操作性

我记得我在某处看到过一些代码,这些代码曾经将结构作为基类,将C++类作为派生类structBase_Struct{}classDerived:Base_Struct{...}重点是指向Base_Struct*的指针从C++文件传递​​到一些C文件,然后这些文件设法使用Base_Struct中的一些函数指针。我的问题是:如果我将Base_Struct*传递给C文件,C代码是否能够完全使用Base_Struct?派生类呢? 最佳答案 IfIpassBase_Struct*toaCfile,willtheCcodebeabletouset

C++结构指针问题

这可能很简单,但我正在尝试更好地理解指针。假设我有一个结构structPerson{charName[20];charID[15];charAddress[50];charNumber[15];};假设我有一堆这些存储在内存中一个接一个。所以现在我声明一个指向该结构的新指针。structPerson*ptr;这个指针会从第一个条目开始吗?(又名第一个“名称”),当我迭代它(又名ptr++)时,它会转到下一个STRUCT或下一个“条目”,也就是name-->ID--->Address例如,让我在第一个条目上说,数据是:JasonAdams111222333111FakeDrive5555

c++ - 读取带分隔符的文件

如何从文件中读入行并将该行的特定段分配给结构中的信息?我怎样才能停在一个空白行,然后再次继续直到到达文件末尾?背景:我正在构建一个程序,它将获取一个输入文件,读取信息,并使用双重哈希将该信息放入哈希表的正确索引中。假设我有结构:structData{stringcity;stringstate;stringzipCode;};但文件中的行格式如下:2085086,Phoenix,Arizona56065,Minneapolis,Minnesota8528156065抱歉,我似乎还是想不通。我真的很难阅读文件。第一行基本上是要构造的哈希表的大小。应忽略下一个空行。然后接下来的两行是应该进