草庐IT

私有链

全部标签

c++ - 使用模板公开私有(private) Typedef

我有一个包含私有(private)typedef和几个成员的类功能:classFoo{private:typedefstd::blahblahFooPart;FooPartm_fooPart;...public:intsomeFn1();intsomeFn2();};几个成员函数需要以类似的方式使用m_fooPart,所以我想把它放在一个函数中。我将辅助函数放在匿名中命名空间,但在这种情况下,他们需要知道什么FooPart是。所以,我这样做了:namespace{templateinthelperFn(constT&foopart,intindex){...returnfoopart.

c++ - 使用私有(private)复制/移动构造函数进行聚合初始化

我在为anotherquestion测试一些东西时遇到了这个问题关于初始化聚合。我正在使用GCC4.6。当我用列表初始化聚合时,所有成员都在适当的位置构建,无需复制或移动。即:intmain(){std::array,2>a{std::array{Goo{1,2},Goo{3,4}},std::array{Goo{-1,-2},Goo{-3,-4}}};}让我们通过一些嘈杂的构造函数来确认:structGoo{Goo(int,int){}Goo(Goo&&){std::cout运行时,不会打印任何消息。但是,如果我将移动构造函数设为私有(private),编译器会提示'Goo::Goo

c++ - 具有私有(private)构造函数的类私有(private)继承的工作机制

案例一:classObjectCount{private:ObjectCount(){}};classEmployee:privateObjectCount{};案例二:classObjectCount{public:ObjectCount(){}};classEmployee:privateObjectCount{};案例1:ObjectCount构造函数是私有(private)的,继承是私有(private)的。它给出了编译器错误情况2:ObjectCount构造函数是公共(public)的,继承是私有(private)的。这段代码没问题。谁能解释一下这是怎么回事?

chatglm2-2b+sdxl1.0+langchain打造私有AIGC(一)

一、背景及目标在ChatGPT爆火之后,我对AI技术也开始关注,一是出于好奇,而是出于危机。想必对于应用开发人员来说从“面面向对象编程”转成“面向AI编程”也是极好的。最初的时候我也是抱着试一试的心态,开始魔法上网使用chatgpt,然后尝试调用openai的开放接口,搭建了一个自己的chat网站,后来由于免费的token用完了,以及openai对中国的不开放态度,遂放弃。在找遍了国内所有的知名厂商的语言大模型接口之后,突然发现一个神奇的网站,https://huggingface.co(开源模型发布平台,类似于github,当然也是需要魔法上网才能实现自由访问的)。在huggingface上

c++ - 我必须将数据设为私有(private)吗?

我知道类中的数据应该是私有(private)的,然后使用getter和setter来读取/修改它们。但是比起直接使用student.scores.push_back(100)省了一个成员函数是不是很麻烦。classStudent{public:voidaddToScores(intinScore){scores.push_back(inScore);}private:vectorscores;}简而言之,我很好奇人们实际上在做什么,总是使用getter和setter严格私有(private)数据? 最佳答案 成员函数的目的是公开接口

c++继承私有(private)复制构造函数: how doesn't this yield a compile time error?

在C++中,如果我们有这个类classUncopyable{public:Uncopyable(){}~Uncopyable(){}private:Uncopyable(constUncopyable&);Uncopyable&operator=(constUncopyable&);};然后我们有一个派生类classDervied:privateUncopyable{};我的问题是:当编译器在派生类中生成默认的复制构造函数和赋值运算符时,为什么这不会生成编译时错误?生成的代码不会尝试访问基类私有(private)成员吗? 最佳答案

c++ - 私有(private)内部类的友元函数

我有以下问题。我有一个带有私有(private)内部类的类。我现在想为内部类实现一个friend交换功能。但是我不知道如何制作非内联交换功能。如果我在内部类中定义它,一切正常。如果有人可以告诉我如何使其成为非内联的,我将不胜感激:)一些代码确实说明了问题:classOuter{classInner{intdata;friendswap(Inner&lhs,Inner&rhs)//whatisthesyntaxto{//makethisfunctionnoninline?usingstd::swap;swap(lhs.data,rhs.data);}}} 最佳

c++ - 返回私有(private) vector

我有一个具有私有(private)属性的类,它是一个vector。执行getter函数的最佳方法是什么?返回整个vector:vectorgetNames(){returnnames;}这会返回一个拷贝还是一个指针?因为它是私有(private)的,所以可以访问吗?返回迭代器:vector::iteratorgetNames(){returnnames.begin();}公开载体我知道这对OOP来说是不好的做法,只是列出选项。 最佳答案 返回constvector&.它确保它不会在外部被修改并且不会制作拷贝。

c++ - 根据模板的类型名设置私有(private)属性

上下文:我们正在尝试建立一个名为Operand的类模板,它可以采用多种类型作为其类型名T。.这些在以下枚举中定义:enumeOperandType{INT8INT16,INT32,FLOAT,DOUBLE};那些对应于中定义的类型,即int8_t,int16_t,等等。构造函数必须是Operand(std::stringconst&value);.templateclassOperand:publicIOperand{public:Operand(std::stringconst&value){std::stringstreamss(value);ss>>_value;//_type=

c++ - 私有(private)类成员延迟初始化的最佳实践

对于C类的私有(private)类成员M的延迟初始化是否有最佳实践?例如:classC{public:C();//Thisworksproperlywithoutm,andmaybecalledatanytime,//evenbeforestartWorkwascalled.someSimpleStuff();//Calledsingletime,onceparamisknownandworkcanbestarted.startWork(intparam);//Usesm.Calledmultipletimes.//GuaranteedtoonlybecalledafterstartW