Object.memberFunction(argument).成员函数();- 我只是不明白这个
Object.memberFunction(argument).MemberFunction(); - I just don't get this
我正在做一项更大的任务——一个虚构的网上银行数据库。一切都好,只是它需要能够响应这样的呼叫:
bank.Account("123456").Balance();
bank是bank类的一个实例,它持有Account类对象的数组(是的,我被禁止使用大多数STL)。
想法:我需要一个功能帐户&Bank类中的Account(const char*),它将是Account类的友元函数,然后可以调用Account类中声明的Balance函数。我这样做对吗?我并不是真的要求你为我写代码,我只想知道我是否朝着正确的方向前进。谢谢
我需要一个函数Account&Bank类中的Account(const char*),它将是Account类的友元函数,然后可以调用Account类中声明的Balance函数。我这样做对吗?
您不需要任何friend
类或函数,只需使getter public
:
class Bank {
public:
Account & Account ( const char * );
};
class Account {
public:
Balance& Balance();
};
是的,这是正确的方向。您的Bank类需要一个公共方法
Account& Account (const char*);
您的Account类需要公共函数
int Balance();
事实上,你不需要"朋友"来访问这些方法,它们只需要是公共的。
不过要小心你的账户方法。如果您输入的帐户名称不存在,您将返回什么?在这种情况下,也许您应该返回一个空的Account对象(不过需要是Bank类的成员)。在这种情况下,您应该在调用Balance()之前检查返回的Account对象是否有效。
标题中的伪代码可能应该是object.MemberFunction1(arguments).MemberFunction2()
。一切都好,一切都会好起来的。
如果MemberFunction1
返回一个对象或对对象的引用,则可以对返回的对象(或引用)进行更多调用。如果这些类不试图访问和非公开成员,它们就不必是朋友。
事实上,如果返回的对象包含一个方法,而该方法又返回了一个对象,那么您就可以使用
object.MemberFunction1(arguments).MemberFunction2().MemberFunction3();
等等。
- 表示"accepting anything for this template argument" C++概念的通配符
- 我不明白为什么我声明一个空的内部结构并将其传递给构造函数
- 我不明白这段代码是如何对这个pythonlist()进行排序的,也不明白如何用C++中的向量来重现它
- 不明白迭代器,引用和指针失效,一个例子
- 而循环:简单的除法程序输出零,不明白为什么
- 我不明白为什么我的代码不起作用并且需要更长的时间来运行
- C++模板错误:"invalid explicitly-specified argument for template parameter"
- 不明白这个程序的输出
- 为什么编译器说"candidate template ignored: couldn't infer template argument 'InputIterator'"?
- 我遇到了这个代码片段,不明白. 它递归检查 C++ 字符串中是否存在大写字符
- 什么是非营利组织???我的问题是我不明白为什么有人会使用它
- 我正在尝试用 c++ 制作菜单,但不明白为什么它不循环
- "Cannot convert Python object argument to type '<typename>'" - 使用 Cython 包装 C++ 类时出错
- 我的程序不适用于 strcat - 我似乎不明白为什么?
- std::我不明白的矢量元素错误
- 我不明白 c++ 中的"cin"工作
- 我不明白参数和参数如何协同工作
- 什么'!((n % 5 != 0) ||(n % 20 == 0))'变身?为什么呢?我似乎不明白
- 我不明白<C++对象模型内部"中'Argument Initialization'的内容>
- Object.memberFunction(argument).成员函数();- 我只是不明白这个