我正在研究用于video回放和录制的类的集合。 我有一个像公共接口一样的主类,有play() , stop() , pause() , record()等方法。然后我有一些主要的类来完成video解码和video编码。 我刚刚学习了C ++中嵌套类的存在,我很想知道程序员是怎么想的。 我有点小心翼翼,不确定它的好处/缺点,但是根据我正在阅读的书,它们似乎被用在我的例子中。 本书提出,在像我这样的场景中,一个好的解决scheme是将嵌套在接口类中的主力类,所以没有单独的客户端不想使用的类的文件,并避免任何可能的命名冲突? 我不知道这些理由。 嵌套类对我来说是一个新概念。 只是想看看程序员怎么看待这个问题。
如果我在C ++中定义一个内部类,它是否会自动成为包含它的类的一个朋友? 例如,这是合法的: class Outer { public: class Inner { public: void mutateOuter(Outer& o); }; private: int value; }; void Outer::Inner::mutateOuter(Outer& o) { o.value ++; // Legal? Or not? } 我问,因为在我试过的一些编译器(VS2003)这个代码将无法正常工作,但是我至less听说过它在一些编译器上工作。 我在C ++规范中找不到关于这个的相关章节,如果任何人都可以引用某个特定的东西来说明它是合法的或者不合法的,那就太好了。
我想了解在C#中的嵌套类。 我知道嵌套类是在另一个类中定义的类,我不明白为什么我需要这样做。