可能重复:clean C++ granular friend equivalent? (Answer: Attorney-Client Idiom)
我已经想了好几次了,但一直没能想出一个体面的方法来做到这一点。
假设我在 A 类中有一个成员函数。我希望能够从不相关的 B 类调用该函数,但通常不能调用。您可能会说,“当然,将函数设为私有并声明 B 为 A 的朋友。”这就是我一直在做的,但...
»
我了解 PROPERTIES 相对于 FIELDS 的优势,但我觉得使用 AUTO 实现的属性而不是 MANUAL 实现的属性并没有真正提供任何优势,只是让代码看起来更简洁一些。
我觉得使用起来更舒服:
private string _postalCode;
public string PostalCode
{
get { return _postal...
»
我是一名 c++ 开发人员,正在努力熟悉核心 Java 概念。
我发现这令人困惑,因为我的最终静态是在构造对象后无法更改的东西。 (如果我错了,请纠正我)
我遇到了下面的实现,我觉得很困惑,因为它似乎允许将值添加到 Map 中,即使它是最终静态的
public class MockUserServiceImpl implements UserService {
private sta...
»
免责声明:这个问题是针对那些认为 Scott Meyers 在有效 C++ 的第 23 条中的建议是良好的 OO 设计的人——至少在 C++ 中是这样。
在不存在全局函数的 Java 中,这个原则起初似乎不适用,但在我看来确实适用。以 Scott Meyers 自己为例。
public class WebBrowser {
public void clearCache() {}
...
»
大家好……
如果我有如下界面:
interface IMyInterface
{
int property { get; set; }
}
以及以下实现:
class MyClass : IMyInterface
{
// anything
}
如何从MyClass 的实例中隐藏set 的属性方法... 换句话说,我不希望property 的set 方法公开,这可能吗?
...
»
在this answer 的问题“为什么我的对象不能访问公共基类中定义的另一个对象的受保护成员?”,可以阅读:
您只能从您自己的基类实例中访问受保护的成员。
要么我没有正确理解它,要么following MCVE (live on coliru) 证明它是错误的:
struct Base { void f(); protected: int prot; };
st...
»
我的完整问题是:
当我在属性中创建条件时,我是否必须再次在自定义构造函数中创建相同的条件,或者我可以以某种方式使用属性自定义构造函数?
如果我有这样的代码:
class Program
{
struct Student
{
private int _id;
private string _name;
private int _ag...
»
考虑一个 Employee 类
class Employee:
def __init__(self, name, salary):
self.name = name
self.salary = salary
emp_obj = Employee('Sam', 50000)
print(emp_obj.name, emp_obj.salary)
我尝试...
»
我是 OOP 新手,对返回具有相同变量名的函数有疑问,例如:
class CompanyManager
{
function createCompany()
{
// PDO - create the company
return $db->lastInsertId();
}
function createCompanyContact(...
»
我发现了四种不同的方法来创建没有数据的struct:
struct A{} // empty struct / empty braced struct
struct B(); // empty tuple struct
struct C(()); // unit-valued tuple struct
struct D; // unit struct
(我不考虑只包含 ()s 和单变...
»
由于封装和抽象都与信息隐藏有关,我可以将封装理解为抽象的子集吗?
他们需要做的方式 instain 母亲...
»
这是一个设计问题。设计是伪代码,代表一个小例子,但我以后可能会添加更多的方法、数据、逻辑。
在这个例子中,我考虑了两种方法。在下面的execute方法中,我应该返回一个不可变的“data/bean/model”对象和execute方法的输出还是更新BusinessLogic类的状态。
两者都实现了相同的目标,我想要执行的结果,并且数据应该包含在 bean 容器中或 BusinessLogic ...
»
从编译器的角度来看,在包规范中声明 Ada 类型与在正文中声明 Ada 类型有什么区别?...
»
我正在制作一个 Qt 小部件(我们称之为 A),它实际上是一个子类 QGraphicsView。但是,我不想在我的小部件中公开 QGraphicsView 方法,只是基本的 QWidget 接口和我自己的一些方法。因此,我想将A 的一个实例封装为一个简单的QWidget 子类的成员,我们称之为B。
现在我想知道,绘制这个的正确方法是什么?到目前为止,我已经给B 一个布局,其唯一的项目是A 成员。...
»
我没有找到问题的答案,但这似乎很简单。主要的大问题是我在 dll 中购买了一些库和一些硬编码的功能,如果没有源代码,我无法重新编译该 dll。所以这里是学校层面的问题:
我们有 2 类 A 和 B
class A {
public void Method1() {
this.Method2 ();
}
private void Method2() {
...
»
我花了好几个小时来思考暴露列表成员的问题。在与我类似的问题中,Jon Skeet 给出了一个很好的答案。请随意看看。
ReadOnlyCollection or IEnumerable for exposing member collections?
我通常对公开列表非常偏执,尤其是当您正在开发 API 时。
我一直使用 IEnumerable 来公开列表,因为它非常安全,并且提供了很大的...
»
有人告诉我,使用多态性、封装和继承的原则将过程式C++ program 转换为面向对象的。
标准 C++ 程序接受来自用户的数据值和过滤器值。然后,它使用简单的算法将这些值相乘,并将输出打印到屏幕上。标准程序如下所示。
我首先决定使用一个用于“TheFilter”的类和一个用于“TheData”的类,每个类都有自己的“enterdata()”、“displaydata()”和构造函数成员函数...
»
我正在尝试扩展我正在关注 Java 项目的教程,逐步构建电子邮件管理应用程序 (https://www.youtube.com/watch?v=U3Ibvu0htNs&t=386s)。我正在尝试使用 getter 和 setter 来允许封装完成其工作,并最终允许用户输入他们自己的名称,而不是在变量中使用预设名称。我知道代码很乱我一直在玩这个代码,然后我想承认。呵呵
package enc...
»
我有一个关于班级设计的问题。我想要一个封装一堆相关函数的类。例如一个统计类,它有静态函数来计算算术平均值、经验方差等。或者一个物理类,可以计算抛丸运动、波动等。
你如何在 main 中引用这些函数?参考统计示例,在 Java 中我会使用 Statistics.calcMean()。
...
»
我有一个命名空间 ABC,它有一个表单类 F 和一个普通类 C。现在我有另一个命名空间 XYZ,其中包含许多不同的类。现在,F 仅在 C 中使用,在程序中没有其他地方使用。其他所有类都使用 C,而不是 F。
在 Visual Studio (2010) 中,从 XYZ 命名空间中的类中,我可以看到智能感知下拉列表中列出的 F(因为我已经引用 ABC 来使用 C)。我怎样才能防止这种情况发生?我只...
»