草庐IT

private_struct

全部标签

c++ - 私有(private)移动构造函数是为了防止移动吗?

C++中的一个常见模式是将复制构造函数设为私有(private):classA{public://...private:A(constA&);};但是下面的代码会编译吗(在C++11/14中):Af();autoa=f();该标准包含有关自动生成移动构造函数的信息。我既无法访问标准,也无法访问实际生成移动构造函数的编译器。我的问题是:我必须写吗classA{public://...private:A(constA&);A(constA&&);};为了防止移动(和operators=类似)? 最佳答案 Butwillthefollow

c++ - 无法访问类 'std::basic_ios<_Elem,_Traits>' 中声明的私有(private)成员

这个特定方法有问题,不知道如何解决!我得到的错误是上面的:"errorC2248:'std::basic_ios::basic_ios':cannotaccessprivatememberdeclaredinclass'std::basic_ios'C:\ProgramFiles\MicrosoftVisualStudio10.0\VC\include\ostream604"我的方法是:ostreamoperator在标题中:friendstd::ostreamoperator关于如何解决这个问题的任何想法?我认为这与通过引用而不是值传递有关...但我有点困惑!

c++ - 我应该在哪里实现这个 "private"辅助函数?

我的类定义分布在头文件和源文件中://T.hppclassT{public:voidfoo();};//T.cppvoidT::foo(){}如果T::foo需要使用一些只对T可见的辅助函数,以下哪个解决方案是最好的吗?1。私有(private)成员(member)//T.hppclassT{public:voidfoo();private:voidhelper();};//T.cppvoidT::foo(){helper();}voidT::helper(){}2。只能在类定义的TU中访问自由函数//T.hppclassT{public:voidfoo();};//T.cppname

c++ - 可以为嵌套的私有(private)类重载 operator<< 吗?

如何为像这样的嵌套私有(private)类重载运算符classouter{private:classnested{friendostream&operator在外部类编译器之外尝试时会提示隐私问题:error:‘classouter::nested’isprivate 最佳答案 你可以制作operatorouter的friend以及。或者您可以完全实现它inline在nested,例如:classOuter{classInner{friendstd::ostream&operator 关

C++:struct 和 new 关键字

我是C++的初学者,我有以下代码:structAirline{stringName;intdiameter;intweight;};Airline*myPlane=newAirline;我的问题是,如果我没记错的话,当我调用new方法时,它会分配内存。PC如何知道要分配多少内存,特别是考虑到其中有一个字符串类型?谢谢 最佳答案 std::string对象是固定大小的;它包含一个指向实际字符缓冲区的指针及其长度。std::string的定义看起来像classstring{char*buffer;size_tnchars;public:

c++ - boost 私有(private)成员的互斥奇怪错误

我有一个奇怪的错误。classINST{public:boost::mutexm_mutex;};std::vectorm_inst;错误C2248:“boost::mutex::mutex”:无法访问在类“boost::mutex”中声明的私有(private)成员参见“boost::mutex::mutex”的声明但是,我的其他类没问题,classVIEW{public:boost::mutexm_mutex;};VIEWm_view;我是不是漏掉了什么?我已经尝试将m_mutex声明为私有(private),但仍然有同样的问题。谢谢。 最佳答案

c++ - 从 struct timespec 转换为 std::chrono::?

我有一个structtimespec值流。我想将它们转换为nativeC++11表示,但我完全被chrono打败了。什么是最佳目的​​地以及如何从structtimespec或structtimeval到达那里,因为这是一个简单的转换,微秒对这些计时来说已经足够了?我想我想了解这个,对吧?std::chrono::system_clock::time_point在这种情况下,timespec是来自GPS的UNIX时间。是的,他们正在使用4字节秒(转换后的形式在内存中签名,然后写成无符号),到2038年将被确定。作为引用,我将把它添加到gsf的C++阅读器中

c++成员函数访问私有(private)静态变量?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Whatdoesitmeantohaveanundefinedreferencetoastaticmember?如果我在类声明之外实现函数,我不知道为什么会出现错误“对`TT::i'的undefinedreference”?这是代码..classTT{private:staticinti;public:voidt();};voidTT::t(){i=0;}

c++ - 可以通过地址访问私有(private)变量吗?

公共(public)函数是否可以返回指向类中私有(private)变量的指针。如果是/如果不是,会发生什么?它会崩溃还是有什么非常不安全的地方?可以读取或写入指向的数据吗?谢谢 最佳答案 是的,成员函数可以返回指向私有(private)数据成员的指针(或引用)。除了在大多数情况下它会破坏封装之外,这没有什么错误。当然可以通过返回的指针或引用来读取数据成员。它是否可以写入取决于返回的指针或引用是否指向一个const限定的对象(即,如果您返回一个constT*,您将无法修改指向T)。例如:classExample{public:int*

c++ - 私有(private)成员 : Static const vs. 只是 const

当一个对象具有一些不会改变并且在其整个功能中都需要的特征时,我正在尝试确定最佳选择。静态常量成员Const成员在我看来,静态成员的真正原因是拥有一个可以更改的变量,从而影响同一类的所有其他对象。但是,有人建议将类“不变量”作为静态常量成员。我正在寻找有关建立类常量的推荐方法及其原因的一些见解。 最佳答案 “不会改变”不够准确。这里的主要问题是类的不同对象是否需要具有这些const成员的不同值(即使它们在对象的生命周期内没有改变)或者所有对象都应该使用(共享)相同的值。如果类的所有对象的值都相同,那么当然应该是类的staticcons