问题标签 [friend-class]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4221 浏览

c++ - 朋友类可以在 C++ 中调用私有构造函数吗?(什么是单例)

考虑 A 类和 B 类。A 类与 B 类友好。B 类有一个私有构造函数。A类可以创建B类实例,还是私有构造函数向编译器指示该类不能被实例化,即使是朋友类?
这是一些示例代码:

另外,请注意我使用的是 C++03。如果它在 C++03 中无效,在 C++11 中是否允许?

作为一个附带问题,Singleton 方法是如何相关的?它是否专门处理实例化一个对象的一个​​且仅一个实例,还是其他什么?

0 投票
5 回答
250 浏览

c++ - 朋友类声明

我是 C++ 编程的新手,我们可以将类的一些成员声明为其他类的朋友吗?这意味着假设 A 类有三个成员函数,而不是将整个类声明为其他 B 类的朋友(比如说),我可以只将 A 类的一个成员声明为 B 类的朋友,所以请帮忙。

0 投票
3 回答
227 浏览

c++ - 类内的朋友函数c ++

我写了这段代码,但朋友功能不起作用(foodmoney 和 hobbymoney 没有在我的朋友功能中声明。我的错误在哪里?

0 投票
2 回答
1689 浏览

c++ - 从不同的 c++ 类访问 Mysql * 连接变量

我编写了 c++ 类来连接 mysql 数据库:

.hpp 文件

.cpp 文件

当我试图从主函数或不同的类访问连接变量时,我总是得到一个错误,比如变量 'connection is not declared in this scope。我尝试使用友元类或继承来指向连接变量,但它不起作用。我认为我的语法有问题。

这是我如何尝试从不同类指向此变量的示例:

0 投票
1 回答
911 浏览

c++ - 具有前向类声明的朋友类无法编译

这是一个了解如何friend class在 C++ 中使用的基本程序。

xxx有一个yyy使用friend. 由于类yyy 是在类之后定义的,xxx因此我yyy使用前向声明声明了类。

当我编译程序时,我得到这个错误:

错误:聚合 'yyy y2' 类型不完整,无法定义

我提到了这个链接 递归朋友类 ,有人这样回答 https://stackoverflow.com/a/6158833/2168706

我正在遵循这种方法,但我仍然无法解决问题。如果存在任何解决方案,请提供解决方案,如果我在代码中的任何地方出错,请告诉我。

0 投票
2 回答
150 浏览

c++ - 如何从封闭模板类访问嵌套类的方法和字段?

我在网上搜索并没有找到任何解释为什么会发生以下情况。

例如,有一个模板类 Enclosure 与一个嵌套类 Nested。

在封闭类中,有一个方法应该创建嵌套类的实例并使用它的字段和方法。

在下面的代码中,有一个我正在尝试的模型:

问题是:

当我写作nes.some_method时,在我输入“nes.”之后,我尝试过的所有环境(VS2010,eclipse)都没有给我任何选择。我似乎“nes”根本不是班级的一个实例。

如何从封闭模板类访问嵌套类的方法和字段?

0 投票
1 回答
898 浏览

c++ - 朋友和嵌套类

好吧,我对此感到非常疲惫。代码开始在屏幕上游来游去……必须睡觉。

所以!好吧,被嵌套类和朋友困扰。

这是伪代码

因此,一旦创建了 A 类型的对象,我希望它访问 a() 和 b()。我知道我必须为此使用朋友功能。那么我应该把朋友班A放在哪里。这样的表达方式正确吗?

0 投票
1 回答
1430 浏览

c++ - C++ 中两个具有友元方法的类

目前我正在读一本书C++,里面有一些练习。其中一个练习要求构建两个类,每个类都有一个友元方法。我目前的猜测是这样的:

但我的猜测没有编译,因为类Xvoid friend Y::f(X* x);方法声明。我怎样才能解决这个难题?请再给我一些猜测。

0 投票
2 回答
354 浏览

c++ - 为刚刚声明的类定义一个 stl 容器。

我正在尝试为我的研究实现有限元代码。我需要创建一个将材质与其名称相关联的地图,以便我可以按名称访问它们。从主类的头文件中,我定义了以下内容:

主类的实现编译。但是,当 makefile 到达主文件时,我收到以下错误

我该如何解决这个问题。我的代码的所有其他文件都包含重要代码类的头文件正在编译。

谢谢!

0 投票
2 回答
1881 浏览

c++ - 通过友元函数重载运算符并返回与rhs参数不同的类型

我在此处附上代码并解释以下问题: 这是 Bittop 类:

和测试功能:

我有一个模板类Bitop。我想重载“+”以添加 2 个具有不同模板参数的对象并返回第三个对象,其参数不同于 rhs 和 lhs 对象,即我想做以下事情:

Bitop<5,3> + Bitop<4,2> 应该返回 Bitop<10,6>。我将 Bitop 声明为它自己的友元类,这样我就可以访问 rhs 和 lhs 对象的私有成员。但是无论我是否调用“+”函数,我都会收到编译错误(由于重新定义)。

我不清楚我在这里做错了什么。任何帮助表示赞赏。

请注意,我在代码中留下了几个函数和函数调用,以确保其他重载(例如 = 和 +=)正常工作。