草庐IT

more-private

全部标签

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++ 结构 : more members, 成员访问时间慢得多?

我有一个结构链表。假设我将x百万个节点插入到链表中,然后我遍历所有节点以找到给定值。奇怪的是(至少对我而言),如果我有这样的结构:structnode{inta;node*nxt;};然后我可以遍历列表并检查a的值,这比我在结构中有另一个成员时快十倍,如下所示:structnode_complex{inta;stringb;node_complex*nxt;};我也用C风格的字符串(字符数组)尝试过,结果是一样的:只是因为我有另一个成员(字符串),整个迭代(+值检查)慢了10倍,即使我从来没有碰过那个成员!现在,我不知道结构的内部是如何工作的,但看起来要付出高昂的代价......有什么

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)前缀或后缀。就个人而言,我认

c++ - 在父类中调用父方法并访问私有(private)变量?

我试图让下面的代码工作,但我找不到关于C++如何处理公共(public)继承和私有(private)继承的足够好的文档来让我做我想做的事。如果有人可以解释为什么我不能使用私有(private)继承或Parent::size访问Parent::setSize(int)或Parent::size>使用公共(public)继承。要解决这个问题,我需要在Parent中使用getSize()和setSize()方法吗?classParent{private:intsize;public:voidsetSize(ints);};voidParent::setSize(ints){size=s;}c

可访问 C++ 私有(private)成员?

这个问题在这里已经有了答案:canyouaccessprivatemembervariablesacrossclassinstances?(2个答案)关闭9年前。我在使用C++的信号类中有这个项目。当我看到这个时,我正在修改我们的教师代码:ListData::ListData(constListData&newlist):Data(),nbNodes(newlist.nbNodes){}正如他所说,这是一个“复制构造函数”,应该大致等同于以下内容:ListData::ListData(constListData&newlist){Data="";//copynbNodesofnewLi

c++ - C/C++ 私有(private)数组在头文件中初始化

我有一个名为Cal的类,它是.cpp和.h的对应物头文件有classCal{private:intwa[2][2];public:voiddo_cal();};.cpp文件有#include"Cal.h"voidCal::do_cal(){print(wa)//whereprintjustitteratesandprintstheelementsinwa}我的问题是如何初始化数组wa?我似乎无法让它工作。我试过:intwa[2][2]={{5,2},{7,9}};在头文件中,但我收到错误消息说我不能这样做,因为它反对iso..something。还尝试在构造函数中初始化数组wa但这也不

c++ - 公共(public)新私有(private)构造函数

当我尝试编译以下内容时:#includeclassTest{public:void*operatornew(size_tnum);voidoperatordelete(void*test);~Test();private:Test();};Test::Test(){std::cout(test));}intmain(){Test*test=newTest;deletetest;}我明白了:$g++-otesttest.cpptest.cpp:Infunction‘intmain()’:test.cpp:14:error:‘Test::Test()’isprivatetest.cpp:3