草庐IT

Private_dirty

全部标签

c++ - 从 main 访问私有(private)字段和函数

在我的职业生涯中,我只用Java编程,从10天开始就开始使用C++,所以这个问题对你们中的许多人来说可能看起来很奇怪。我在头文件中定义了一个类的结构:#include"ros/ros.h"#include"nav_msgs/Odometry.h"#include"geometry_msgs/Pose.h"#include"geometry_msgs/Point.h"#include"stdio.h"#include"sensor_msgs/LaserScan.h"#include"list"#include"vector"#include"scan_node.h"#include"od

c++ - 为什么我可以使用模板函数中的私有(private)方法

我有模板类MyClasstemplateclassMyClass{public:MyClass(){}private:voidPrivateFunction(){std::cout现在,当我尝试在另一个函数中使用PrivateFunction()时,编译器会报告错误,但是当我在模板函数中尝试相同的内部时,编译器不会显示任何错误。编译器不报错。templatevoidf(){MyClassa;a.PrivateFunction();}编译器报告错误。voidf(){MyClassa;a.PrivateFunction();} 最佳答案

c++ - 私有(private)拷贝构造函数 : disallow

我在一个开源库中编程,该库在代码中几乎没有注释,而且绝对没有与代码相关的文档,或者此类注释完全没有显示任何内容或完全令人困惑。库的示例类有时定义如下(这是一个抽象的简短示例):classA{private://Disallowdefaultbitwisecopyconstruct.A(constA&Acopy){data=Acopy.data;};intdata;public:A(){};A(intarg):data(arg){};A(constA&Acopy){data=Acopy.data;};};private复制构造函数前面的注释“Dissalowdefaultbitwisec

c++ - 为什么私有(private)成员会被继承?

所以基类中的private成员也在继承类中,但在其中不可访问,对吧?它们实际上在分配给继承对象的内存中吗? 最佳答案 Aretheyactuallyinthememoryallocatedtothetheinheritedobject?是的,它们需要存在。私有(private)成员是基类实现细节的一部分。没有它们,一般来说,基类将无法运行(这就是它们首先存在的原因)。将它们设为私有(private)只允许基类创建其选择的实现,而不会将其暴露给任何人,包括子类。 关于c++-为什么私有(p

c++ - 返回私有(private)类成员是否比使用结构并直接访问该变量慢?

假设您有一个包含私有(private)成员的类,这些成员在程序中经常被访问(例如在必须快速的循环中)。想象一下,我定义了这样的东西:classFoo{public:Foo(unsignedset):vari(set){}constunsigned&read_vari()const{returnvari;}private:unsignedvari;};我想这样做的原因是,一旦创建了类,“vari”就不应再更改。因此,为了尽量减少错误的发生,“这在当时看来是个好主意”。但是,如果我现在需要调用此函数数百万次,我想知道是否存在开销和速度减慢而不是简单地使用:structFoo{unsigne

c++ - 这一堆 typedef 应该是私有(private)的还是公共(public)的?

我正在编写一个表示图形的类,所以我编写了以下标题classGraph{public:Graph();Graph(intN);voidaddVertex();voidaddEdge(VertexNumv1,VertexNumv2,Weightw);std::pairshortestPath(constVerticesGroup&V1,constVerticesGroup&V2);private:typedefintVertexNum;typedefintWeight;typedefstd::pairEdge;typedefstd::vectorPath;typedefsize_tPath

c++ - 私有(private)变量只需要在构造函数中初始化。如何?

我有一个名为Foo的类,它有一个需要参数的构造函数,还有另一个类Bar有一个Foo私有(private)变量classFoo{public:Foo(string);}classBar{public:Bar(){this->foo=Foo("test")}private:Foofoo;}但是,当我尝试编译它时,我得到一个编译错误,指出没有Foo::Foo()构造函数。看起来类Bar中的私有(private)变量foo在构造函数中赋值之前被初始化。我怎样才能拥有一个等待在我的构造函数中初始化的私有(private)foo变量? 最佳答案

c++ - 可访问类的私有(private)函数?

一段时间以来,我一直在努力学习C++。最近我遇到了以下代码:#includeusingnamespacestd;classPoint{private:doublex_,y_;public:Point(doublex,doubley){x_=x;y_=y;}Point(){x_=0.0;y_=0.0;}doublegetX(){returnx_;}doublegetY(){returny_;}voidsetX(doublex){x_=x;}voidsetY(doubley){y_=y;}voidadd(Pointp){x_+=p.x_;y_+=p.y_;}voidsub(Pointp){

c++ - 是否可以访问类的私有(private)成员?

是否可以在C++中访问类的私有(private)成员。providedyoudon'thaveafriendfunctionandYoudon'thaveaccesstotheclassdefinition 最佳答案 你的意思是使用一些指针算法来获得访问权限?这是可能的,但绝对是危险的。也看看这个问题:Accessingprivatemembers 关于c++-是否可以访问类的私有(private)成员?,我们在StackOverflow上找到一个类似的问题:

c++ - C++中私有(private)成员函数的良好命名约定?

对于成员(member),我用//.......vvSomeTypem_XXX;//.......^^我喜欢使用_作为成员函数的前缀,但是以_或__开头的名称是保留的,不应该被使用。我的想法是,当我有:SomeClassmyObject;myObject.[XXX]当(lib的)用户写下点(.)时,以查看所有仅public的函数(一个接一个)。是否有通用的命名约定?我知道,我可以使用pImpl或继承,带有接口(interface)和实现类 最佳答案 最常见的做法是命名成员函数时不带任何公共(public)前缀或后缀。就个人而言,我认