gpt4 book ai didi

c++ - C++中有没有像Java一样的静态嵌套类?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:08:00 30 4
gpt4 key购买 nike

我经常用java写,我对 C++ 中的静态嵌套类有点困惑。

我正在尝试声明一个静态类,但出现错误:

class D
{
public:

static class Listener
{
public :

void foo()
{
cout << "foo" <<endl;
}
};

};

我得到以下错误

"storage class can only be specified for objects and functions"

(我正在使用在线编译器)。

最佳答案

正确的术语是“静态嵌套类”。

Java 中的静态嵌套类就像 C++ 中的普通嵌套类,所以只需删除 static 就可以正常工作。

非静态 像 Java 中的那些在 C++ 中模拟起来会有点困难,因为没有编译器魔术来自动提供外部类的上下文。您必须通过在内部类中存储对外部类的引用、在内部类的构造函数中对其进行初始化并通过引用显式访问外部类的成员来解决此问题。

关于c++ - C++中有没有像Java一样的静态嵌套类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41197832/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com