草庐IT

private_struct

全部标签

c++ - 是否需要私有(private)静态方法?

ThePrincipleEngineer在我上一家公司有一条规则,privatestatic方法应该作为实现文件中的函数来实现,而不是类方法。我不记得他的规则是否有任何异常(exception)。我在目前的工作中偶然发现了这样做的动机:如果相关函数的参数或返回类型是需要在header中包含定义文件的对象,这可能会造成不必要的困难。em>这足以让我不再使用privatestatic方法,但在我注销它们之前我想知道是否有人知道他们的利基市场填写一个实现文件函数不会?编辑:此处的示例可能会有所帮助。假设这是classFoo声明的开始,它还有其他方法将在实现文件中调用voidfoo():cla

c++ - 将静态私有(private)映射初始化为空

我有一个staticmap是一个private数据成员。如何在实现文件中对其进行初始化,使其初始容器为空?它不是const。开始时此容器中没有任何内容,这一点很重要。 最佳答案 标题:classXXX{private:staticstd::mapthe_map;//declaresstaticmember//...执行文件:std::mapXXX::the_map;//definesstaticmember这会将映射的构造函数调用插入到程序初始化代码中(并在清理中插入析构函数)。不过要小心-不同翻译单元之间的静态构造函数的顺序是未定

c++ - 'struct std::pair<int, int >' has no member named ' 序列化'

我正在尝试将序列化集成到我的代码中。但是,我收到“没有命名的成员”错误。我正在阅读的书说std::pair不需要包含头文件并且不存在。如何修复此错误?我的代码如下所示:#include//ofstream/ifstream#include#include#include//stringstream#include//#include#include//#includeusingnamespacestd;intmain(){complexc(1,0);bitsetb(BOOST_BINARY(101));pairp(1,2);strings;std::stringstreamss(s);

c++ - 为什么让 operator new 私有(private)中断 std::shared_ptr?

我正在实现一个多态类型(称之为A),我想通过std::shared_ptr专门管理它。为了允许在派生类的构造函数中使用shared_from_this,A使用new分配,然后初始化一个成员std::shared_ptr给自己自动管理它的生命周期。为了帮助实现这一点,我决定将类特定的operatornew设为私有(private),并计划使用create()辅助函数而不是new和make_shared。该设计可能看起来有点滑稽,但在我正在处理的UI库的上下文中是有意义的。一个最小的可重现示例如下:structA{A():m_sharedthis(this){}voiddestroy(){

c++ - C++11 中的 POD 和继承。 struct的地址是否==第一个成员的地址?

(我已经编辑了这个问题以避免分心。在任何其他问题变得有意义之前,有一个核心问题需要被澄清。向那些现在回答似乎不太相关的人道歉。)让我们设置一个具体的例子:structBase{inti;};没有虚方法,也没有继承,一般是一个很笨很简单的对象。因此它是PlainOldData(POD)它回到了可预测的布局。特别是:Baseb;&b==reinterpret_cast&(b.i);这是根据Wikipedia(它本身声称引用了C++03标准):ApointertoaPOD-structobject,suitablyconvertedusingareinterpretcast,pointsto

c++ - 我可以转换对象并访问 C++ 中的私有(private)数据成员吗?

我想访问类中的私有(private)数据成员。类中没有访问私有(private)数据成员的成员函数。这是私有(private)的。我想上课,想知道如何打开它。一种方法是复制类的声明,将私有(private)成员设为公有并将新类称为something_else。然后我重新解释转换并复制原始对象。这行得通。但我想要更优雅的东西……或者可能是通用的……或者只是另一种方式。有哪些选择?我可以使用void*吗?我可以将类(class)memcpy到另一个空类(class)吗?有什么方法可以做到这一点?% 最佳答案 我假设您已经经历了“打破封装

c++ - 那么现在 struct 可以有虚函数并支持继承吗?那么与 classes 有什么区别呢?信息隐藏的真正目的是什么?

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:WhatarethedifferencesbetweenstructandclassinC++http://www.cplusplus.com/reference/std/typeinfo/type_info/我想我的“老师”并没有告诉我很多关于C++中结构和类之间的区别。我在其他一些关于继承的问题中读到,默认情况下结构是公共(public)的...我也猜想结构没有构造函数/析构函数...那么还有哪些区别呢?它们有那么重要吗?当谈到私有(private)/protected属性/方法时,它们在运行时不可访问,

c++ - 访问同一类对象的私有(private)元素

这合法吗?如果不允许,以下代码是否允许这样做?classFoo{friendclassFoo;} 最佳答案 那是多余的。Foo已经可以访问所有Foo成员。两个Foo对象可以访问彼此的成员。classFoo{public:inttouchOtherParts(constFoo&foo){returnfoo.privateparts;}private:intprivateparts;};Fooa,b;b.touchOtherParts(a);上面的代码可以正常工作。B将访问A的私有(private)数据成员。

c++ - 私有(private)继承

我不完全明白这一点:classBase{public:Base(){cout是否因为有人可能使用bPtr调用call()而这实际上是在派生对象上完成的?还是有其他原因? 最佳答案 公有继承就是大家都知道Derived是从Base派生出来的。protected继承意味着只有Derived、Derived的friend以及从Derived派生的类知道Derived是从Base派生的。*私有(private)继承是指只有Derived和Derived的friend知道Derived是从Base派生的。由于您使用了私有(private)继承

c++ - 访问私有(private)成员

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭7年前。Improvethisquestion通过将类的私有(private)成员转换为空指针然后再转换为结构来访问类的私有(private)成员是否合适?我认为我无权修改包含我需要访问的数据成员的类。如果不符合道德规范,我不想冒险以间接方式访问数据成员。编辑:不得不进一步编辑这个...我很确定这个类不会被修改,所以在那个程度上没关系...我唯一担心的是,如果编写该类的人知道这个,他可能不太满意:(。