草庐IT

private_class_greeter

全部标签

c++ - 私有(private)数据成员访问

我在c++教科书上看到了下面的一段代码,但我认为它存在访问问题。A类有一个私有(private)数据成员val和一个公共(public)成员函数constA&topval(constA&b)const返回一个对象引用瓦尔。我认为下面b.val的用法是错误的,因为它从外部访问私有(private)数据,我的理解正确吗?constA&A::topval(constA&b)const{if(**b.val**>val)returnb;elsereturn*this;} 最佳答案 不,您可以从对象类的成员函数访问对象的私有(private)

c++ - 通过模板成员函数访问私有(private)元组元素

这个问题在这里已经有了答案:WhereandwhydoIhavetoputthe"template"and"typename"keywords?(8个答案)关闭6年前。类(class)foo包含一个私有(private)元组成员。我想使用getElement()获取对此元组元素的引用.我找到了这个解决方案,但是当对象被传递给另一个类的构造函数时它不起作用bar:#includetemplateclassfoo{std::tupletup_;public:foo(Args...args):tup_{args...}{};templateconsttypenamestd::tuple_el

c++ - template<class = enable_if_t<...>> 做什么?

我一直在阅读STL文件,以学习格式化代码的更好方法,并学习提高效率的技巧。我一直在阅读线程文件,但我无法弄清楚某些代码的作用。template,thread>::value>>explicitthread(_Fn&&_Fx,_Args&&..._Ax){//constructwith_Fx(_Ax...)...}std::enable_if_t是templateusingenable_if_t=typenameenable_if::type;templatestructenable_if{//typeis_Tyfor_Testusingtype=_Ty;};该代码在thread和str

C++通过访问函数返回私有(private)二维数组

我有一个C++类,它有一个函数,该函数从同一类的另一个变量中获取二维数组,以便该数组的特定实例可以访问另一个变量。有问题的变量是一个二维数组。给定下面的代码,您将如何实现访问器函数来获取私有(private)二维数组变量。我的意图是让访问器返回二维数组,但我不知道要使用哪种返回类型。int[][]、int**、int*和int不起作用。classMyClass{public://getsprivatexvariablefromanotherMyClassvariablevoidproccessVar(constMyClass&aVar){//getandprocessthe2Darra

【Java】一文彻底弄懂访问修饰符(public/protected/默认/private)--建议收藏

博主简介:努力学习的预备程序媛一枚~博主主页:@是瑶瑶子啦所属专栏:Java岛冒险记【从小白到大佬之路】前言 OOP(ObjectOrientedPrograming),即面向对象编程,最重要的功能/特点之一就是封装,这点在该专栏开篇博客【Java基础篇】Java重要特性,JDK,JRE,JVM区别和联系,环境变量就已经提到过(包括隐藏信息的好处):如何实现信息隐藏呢?Java使用了访问控制修饰符(modifiner)来实现这篇文章,我们重点学习Java中又一重要语法知识访问控制修饰符先上思维导图,看文章时,对文章讲解思路&脉络更好把握:目录前言Part1:分类Part2:可修饰对象Part3

c++ - 无法访问单例类析构函数中的私有(private)成员

我正在尝试实现这个单例类。但是我遇到了这个错误:'Singleton::~Singleton':无法访问类'Singleton'中声明的私有(private)成员这在头文件中被标记,最后一行包含右大括号。谁能帮我解释一下是什么导致了这个问题?下面是我的源代码。单例.h:classSingleton{public:staticSingleton*Instance(){if(!pInstance){if(destroyed){//throwexception}else{Create();}}returnpInstance;}private:staticvoidCreate(){static

c++ - 这是对类(Class)友情的恰当运用吗?

在创建Windows父类和子类对话框时,让子类成为父类的友元以访问其私有(private)数据通常是个好主意还是应该使用访问函数? 最佳答案 很少需要friend-通常是当您需要在一个类中重新实现一些深层行为而不重写它以便它们都从单个基类继承或不提供大量访问者时。只有一次我需要它是在ActiveX中重写一个基于openGL的渲染器——当我需要获取大量低级模型数据,但不能(出于非技术原因)重新实现一个通用的ABC时。 关于c++-这是对类(Class)友情的恰当运用吗?,我们在StackO

c++ - 智能指针 : cast between base and derived classes

假设你有这样一个函数:SmartPtrdoSomething(SmartPtra);像这样的类:classA{}classB:publicA{}现在我这样做:SmartPtrfoo=newB();doSomething(foo);现在,我想取回一个SmartPtr来自doSomething的对象.SmartPtrb=doSomething(foo);这可能吗?我需要做什么样的选角?现在,我刚发现一些我认为丑陋的东西:B*b=(B*)doSomething().get()重要说明:我无权访问SmartPtr和doSomething()代码。 最佳答案

c++ - 访问类中的私有(private)成员

我需要从DLL访问一个对象,对该对象进行一些操作并将该对象提供给另一个函数。问题是我需要更改的字段是私有(private)的。我不想改变原来类中字段的private修饰符,因为该类是很久以前写的,并且在很多地方都在使用。然而,在我操作类的地方,我需要大部分字段而没有保护(这是一个hack)。最好的方法是什么?注意:我不允许更改原来的类 最佳答案 在这种情况下,DLL中编译的内容并不重要,重要的是您包含的头文件。我建议您更改您感兴趣的类的头文件,以便您需要的变量是public。成员访问由编译器而不是链接器检查,因此重要的是类的声明方式

c++ - 如何初始化值为结构的类的私有(private)成员静态映射?

我有一个类,它的私有(private)成员是一个静态映射:ClassDevices{...private:structDevicePair{intnCtr;boolisToAdd;};DevicePairm_DevPair;staticmapm_SYSdeviceMap;};为什么我不能只在cpp文件中这样做?mapDevices::m_SYSdeviceMap;如何在cpp文件中初始化它? 最佳答案 用这一行:mapDevices::m_SYSdeviceMap;此外,作为一种良好的编码习惯,请从header中删除usingnam