草庐IT

FRIEND_ID

全部标签

c++ - 制作成员函数,一个类的 friend

我一直在尝试编写代码来实现一个成员函数,该成员函数可以通过将其声明为类中的友元来访问类的私有(private)数据。但是我的代码失败了,我似乎无法弄清楚它有什么问题:#includeusingnamespacestd;classA;classB{private:intb;//ThisistobeaccessedbymemberfunctionofApublic:friendvoidA::accessB();};classA{private:inta;public:voidaccessB();};voidA::accessB(){By;y.b=100;cout我正在尝试使用getAcce

c++ - 如何与 "template using"定义的模板(别名)类成为 friend ?

类B想和每个人成为friendC.我正在努力寻找解决方法。只要我不添加有问题的行,下面是成功编译的完整代码。#includeusingnamespacestd;enumEN{EN1,EN2};templateclassC{public:C(){std::coutclassB{templateusingCT=C;//templatefriendclassCT;//ct;}};intmain(){B::test();return0;}这是我尝试过的(全部失败):-templatefriendclassC;templatefriendclassCT;templatefriendclassCT

C++ boost 线程 ID 和单例

很抱歉这周提出了这么多问题。我假设thread.get_id返回的线程索引是特定于实现的。在pthreads的情况下,索引是否被重用?IE,如果线程0运行并加入,线程启动后是否会有不同的ID?我问这个的原因是需要通过扭曲来实现单例模式:每个线程都有自己的实例。我知道这听起来很疯狂,但是线程控制硬件(cuda)不允许设备内存共享,即使在线程级别也是如此。实现这种模式的好方法是什么? 最佳答案 对于每个线程都有自己的实例的全局(单例),使用线程本地存储。Boost有thread_specific_ptr为此。

c++ - 非类名 C++11 类型名是一个简单的模板 ID?

在C++11标准中它描述了type-name和class-name使用以下语法:type-name:class-nameenum-nametypedef-namesimple-template-id我的问题是关于simple-template-id那是type-name的直系后代.有没有可能拥有一个simple-template-id那是一个type-name但不是class-name?例如如果foo命名一个类型,它可以是非类类型吗?(如果答案是否定的,是否有其他原因让我遗漏了为什么simple-template-id在type-name下重复?) 最佳答案

c++ - 检查给定设备 ID 是否存在 Windows 驱动程序

我正在使用C++编写Windows库。该库应该能够检查系统上是否安装了特定设备的设备驱动程序。所以我正在寻找一种方法来检查是否为已知的DeviceID安装了驱动程序。.到目前为止,我找到了这些信息:SetupDiBuildDriverInfoList列出给定设备的可用驱动程序。但是,我必须提供的不仅仅是设备ID。SetupDiGetClassDevs似乎返回了我调用SetupDiBuildDriverInfoList所需的内容,但它仍然没有将设备ID作为输入。它可能需要设备设置/接口(interface)类的GUID,但如果我理解正确的话,特定于供应商的驱动程序没有这样的GUID。它还

c++ - 纯虚拟 friend 类

我有课A有一个指向纯虚类实例的指针B.类C源自B并且会自动有一个指向A的指针(它是它的父级),并且需要访问它的成员。这可以通过添加friendclassC来实现内部类A,虽然这对于将从B派生的每个类都是必需的.代码示例:classA{public:friendclassB;//ThisdoesnotallowderivedclassestobefriendsfriendclassC;//NowderivedclassBhasaccessto`DoDomething`,butthenthisisneededforeverysinglederivedclassprivate:voidDoD

c++ - 如何对 vector 进行二进制搜索以查找具有特定 id 的元素?

我有一个已排序的vector,现在我想从该vector中找到具有特定ID的元素。std::binary_search只是告诉我元素是否存在,所以我使用std::lower_bound:#include#include#includestructFoo{intid;//...moremembers...//Foo(intid):id(id){}};boolcompareById(constFoo&a,constFoo&b){returna.idvect;vect.push_back(10);vect.push_back(123);vect.push_back(0);std::sort(v

c++ - 如何将模板函数声明为模板嵌套类的 friend ?

我怎样才能制作get封闭范围内的一个函数,可以访问outer::inner的私有(private)构造函数?templatestructouter{templateclassinner{inner(){}public:friendinnerget(outer&){return{};}};};intmain(){outerfoo;outer::innerbar=get(foo);}我尝试通过制作inner来宣布它不在类里面有一个templatefriendinnerget(outer&);但这也不起作用。 最佳答案 Ihavetrie

c# - 从 C# 获取 CPU ID 代码到 C++

我有这个C#代码来获取处理器ID,但我无法将它传递给C++,我尝试了很多但我真的做不到,我刚开始使用C++,我希望能够获得C++的CPUID就像我以前用C#得到的一样这是我在C#中的代码:publicstaticstringGetProcessorID(){stringsProcessorID="";stringsQuery="SELECTProcessorIdFROMWin32_Processor";ManagementObjectSearcheroManagementObjectSearcher=newManagementObjectSearcher(sQuery);Managem

c++ - 通过继承C++成为 friend

假设我有两个类(class)Widget^|Window我还有另一个类应用程序:定义如下classApplication{public:...private:friendWidget;};这不会让Window访问Applicationsprotected和private成员。有没有一种方法可以在不将Window和任何后续“Widget”声明为Application的友元的情况下完成此操作? 最佳答案 不,这是不可能的。friendship不可继承。此外,friendship表示两个实体之间有意强耦合因此,如果您的设计确实需要如此强的