草庐IT

c++ - 具有继承的嵌套类的名称查找

这是否保证有效:structA{structGold{};};structB:publicA{typedefGoldBaseGold;structGold{};};structC:publicB{typedefGoldBaseGold;structGold{};};static_assert(is_same::value,"Nottherighttreasure!");static_assert(is_same::value,"Nottherighttreasure!");它似乎适用于VS2010。显然它依赖于微妙的声明顺序/名称查找规则,所以我想知道标准对此事的看法......

c++ - 用于绘制 C/C++ 结构、指针等的快速草图工具

我想知道您使用什么来描绘C/C++中不同实体之间的关系。这可能是一个非常广泛的问题,所以我将尝试进一步澄清我的问题并举一个例子。我正在寻找对用户来说足够简单的东西,让我以一种非正式的方式轻松地勾勒出容器、指针等。目的是记录一些结构关系以将它们传递给初级开发人员。查看图纸应该可以加快对代码的理解。此时我的解决方案是使用:1)纸和铅笔。2)MicrosoftPowerPoint/Word自选图形。3)免费软件直径。其他的可能是:4)MicrosoftVisio,但我公司没有许可证。5)UML工具。我不想走这条路。这就是我所说的更正式的解决方案。我知道像RationalRose这样的工具是x

c++ - 在 C++ 中按值传递临时结构的简单方法?

假设我想将一个临时对象传递给一个函数。有没有一种方法可以用1行代码而不是2行代码,使用一个结构?有了类,我可以做:class_func(TestClass(5,7));给出:classTestClass{private:inta;shortb;public:TestClass(inta_a,shorta_b):a(a_a),b(a_b){}intA()const{returna;}shortB()const{returnb;}};voidclass_func(constTestClass&a_class){printf("%d%d\n",a_class.A(),a_class.B())

c++ - "friend struct A;"和 "friend A;"语法有什么区别?

做和做有什么区别:structA;structB{friendstructA;};和structA;structB{friendA;};第二部分省略struct是什么意思? 最佳答案 不同的是,如果你写friendA;,A必须是一个已知的类型名,也就是说它必须在之前声明。如果你写friendstructA;,这本身就是A的声明,所以不需要事先声明:structB{friendstructA;};//OK虽然有一些微妙之处。例如,friendclass/structA在类B的最内层封闭命名空间中声明类A(感谢CaptainObvlio

c# - C# 是否使用 -> 指针表示法?

我正在尝试学习C#,我熟悉C++结构指向符号->。我很好奇这是否适用于C#。例子:someStruct->someAttribute+=1; 最佳答案 C#中有指针表示法,但仅在特殊情况下使用unsafe关键字。常规对象使用.取消引用,但如果您想编写快速代码,您可以固定数据(以避免垃圾收集器四处移动东西),从而“安全地”使用指针算法,并且那么您可能需要->。参见Pointertypes(C#ProgrammingGuide)在thisexample中有点下降关于在C#中使用->。它看起来像这样(来自最后一个链接):structMyS

c# - 如何在 C# 中模拟 C++ union ?

我有一个关于具有LayoutKind.Explicit属性集的结构的小问题。如您所见,我声明了struct,其中fieldTotal为64位,fieldFirst前32个字节和fieldSecond最后32个字节。将fieldfirst和fieldSecond设置为Int32.MaxValue后,我希望fieldTotal为Int64.MaxValue,实际上并没有发生。为什么是这样?我知道C#并不真正支持C++union,也许它只会在互操作时很好地读取值,但是当我们尝试自己设置值时,它根本无法很好地处理它?[StructLayout(LayoutKind.Explicit)]stru

c++ - 使用大括号括起来的初始化列表初始化结构 vector

我像这样初始化普通类型的vector:vectordata={0.0f,0.0f};但是当我使用结构而不是普通类型时structVertex{floatposition[3];floatcolor[4];};vectordata={{0.0f,0.0f,0.0f},{0.0f,0.0f,0.0f,0.0f}};我收到错误couldnotconvert'{{0.0f,0.0f,0.0f},{0.0f,0.0f,0.0f,0.0f}}'from''to'std::vector'.这有什么问题吗? 最佳答案 缺少一组{}:std::vec

c++ - 是否可能/建议将 vector 存储在结构中? C++

我一直认为结构是一个固定大小的对象,虽然似乎没有任何明显的编译器错误,但我想知道这样做是否通常是好的做法。将结构更改为类是否更可取,还是结构也一样好?代码,只是因为人们变得挑剔:structSprite{floatx;floaty;std::vectorsprite;}我所做的本质是让一个类(class)的child与parent的类型相同。当parent去世时,child也会去世。 最佳答案 std::vector有一个特定的已知大小,任何包含它的类或结构都有一个特定的已知大小。std::vector在堆上分配内存以用作可变大小的

c++ - 结构体和类的区别

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:WhatarethedifferencesbetweenstructandclassinC++我已完成作业并在Google上得到了不同的答案。有人说结构没有继承,有人说结构没有访问说明符,还有人说两者都有。那么有人可以澄清一下C和C++中结构和类之间的区别,以及C和C++中结构之间的区别。

C++ 定义类成员结构并在成员函数中返回它

我的目标是这样的类:classUserInformation{public:userInfogetInfo(intuserId);private:structuserInfo{intrepu,quesCount,ansCount;};userInfoinfoStruct;intdate;};userInfoUserInformation::getInfo(intuserId){infoStruct.repu=1000;returninfoStruct;}但是编译器给出错误,在公共(public)函数getInfo(int)的定义中,返回类型userInfo不是类型名称。