草庐IT

private_struct

全部标签

c++ - 公共(public) "using"= decltype(<private>)

在以下(最小化)代码中,我有一个公共(public)using引用decltype(something_private)的声明:usingFoo=decltype(something_private).在Clang而不是GCC上,由于它是私有(private)的,因此无法编译。问题:如果我不想制作func(),有什么优雅的解决方案?上市。在C++标准(C++11)中,备份Clang在这里是正确的吗?以下代码在Clang(3.9-7.0)上失败并出现以下错误代码,但在GCC(4.8.4-8.2)上构建:classA{private:templatestaticautofunc()->T;

c++ - 委派到私有(private)领域

有时,C++的隐私概念让我感到困惑:-)classFoo{structBar;Bar*p;public:Bar*operator->()const{returnp;}};structFoo::Bar{voidbaz(){std::coutbaz();//fine}由于Foo::Bar是private,我不能在main中声明b。但是我可以从Foo::Bar调用方法就好了。为什么这是允许的?这是意外还是有意为之?哦,等等,它变得更好了:Foof;autox=f.operator->();//:-)x->baz();即使我不能命名类型Foo::Bar,它也可以与auto一起使用...诺亚写道

c++ - 委派到私有(private)领域

有时,C++的隐私概念让我感到困惑:-)classFoo{structBar;Bar*p;public:Bar*operator->()const{returnp;}};structFoo::Bar{voidbaz(){std::coutbaz();//fine}由于Foo::Bar是private,我不能在main中声明b。但是我可以从Foo::Bar调用方法就好了。为什么这是允许的?这是意外还是有意为之?哦,等等,它变得更好了:Foof;autox=f.operator->();//:-)x->baz();即使我不能命名类型Foo::Bar,它也可以与auto一起使用...诺亚写道

c++ - friend 类对象可以访问派生类对象上的基类私有(private)成员吗?

我很惊讶下面的代码可以编译。似乎与(公共(public)继承的)基类友好的类可以访问基类的成员,前提是派生类的实例。如果继承改为private则编译失败。简而言之,d.b_var在F::func(D&d)中如何有效?#include#includeusingnamespacestd;classB{intb_var;friendclassF;};classD:publicB{intd_var;};classF{public:voidfunc(D&d){d.b_var=5;}};intmain(){cout 最佳答案 classD的对象

c++ - friend 类对象可以访问派生类对象上的基类私有(private)成员吗?

我很惊讶下面的代码可以编译。似乎与(公共(public)继承的)基类友好的类可以访问基类的成员,前提是派生类的实例。如果继承改为private则编译失败。简而言之,d.b_var在F::func(D&d)中如何有效?#include#includeusingnamespacestd;classB{intb_var;friendclassF;};classD:publicB{intd_var;};classF{public:voidfunc(D&d){d.b_var=5;}};intmain(){cout 最佳答案 classD的对象

C++友元函数不能访问私有(private)成员

这应该是一个带有一堆运算符和函数的字符串类,包括两个友元函数。这两个给我带来了一些麻烦,因为编译器说他们不能访问私有(private)成员。这是我的string.h:#include#ifndefSTR_H#defineSTR_HnamespaceMyStr{classStr{private:unsignedintlength;char*data;public:Str();Str(constStr&);Str(constchar*);Str(charc,unsignedintdb);~Str();char*cStr()const;unsignedintgetLength()const;

C++友元函数不能访问私有(private)成员

这应该是一个带有一堆运算符和函数的字符串类,包括两个友元函数。这两个给我带来了一些麻烦,因为编译器说他们不能访问私有(private)成员。这是我的string.h:#include#ifndefSTR_H#defineSTR_HnamespaceMyStr{classStr{private:unsignedintlength;char*data;public:Str();Str(constStr&);Str(constchar*);Str(charc,unsignedintdb);~Str();char*cStr()const;unsignedintgetLength()const;

c++ - 为什么私有(private)成员变量上不允许使用 decltype?

假设我有这样的类(class):classFoo{std::vectorbar;public:std::vector&get_bar(){returnbar;}};然后,我想要另一个与bar具有相同类型的变量。如果我能做到这一点,那对我来说很有意义:decltype(Foo::bar)clone_of_bar;但这不起作用。编译器告诉我'std::vectorFoo::bar'是私有(private)的。所以我最终不得不使用这样的东西:std::remove_reference().get_bar())>::typeclone_of_bar;这可行,但看起来一团糟。也许有更简单的方法来

c++ - 为什么私有(private)成员变量上不允许使用 decltype?

假设我有这样的类(class):classFoo{std::vectorbar;public:std::vector&get_bar(){returnbar;}};然后,我想要另一个与bar具有相同类型的变量。如果我能做到这一点,那对我来说很有意义:decltype(Foo::bar)clone_of_bar;但这不起作用。编译器告诉我'std::vectorFoo::bar'是私有(private)的。所以我最终不得不使用这样的东西:std::remove_reference().get_bar())>::typeclone_of_bar;这可行,但看起来一团糟。也许有更简单的方法来

c++ - GDB-Python 脚本 : any samples iterating through C/C++ struct fields

新的GDB-PythonscriptingAPI看起来很强大,应该很有用。然而,编写一个有用的脚本来遍历C或C++结构中的字段并非易事。有谁知道一些确实可以做到这一点的固体sample?提前致谢。更新最终示例:替换早期示例中的_print_fields()。ifl.type.code==gdb.TYPE_CODE_STRUCT:print"Foundastruct%s"%n#self._print_fields(n,t)self._print_deep_items(n,t,l)else:print"Foundnostruct"def_print_deep_items(self,n_,t