c++ - 结构中的静态对象

标签 c++ object struct static

<分区>

我有类 A 和方法 display()。我创建了一个结构 B,其中包含一个类型为对象 A 的静态变量:

class A{
public :
    void display()
    {
        cout << "in A " << endl;
    }
};
typedef struct B{
    static A a;
} bb;

//B::a.display();
int main() {
    bb b;
    bb::a.display();
    return 0;
}

现在我在尝试访问 a 时遇到错误。

在这种情况下如何定义静态对象?

最佳答案

您声明了 static A a; 但没有定义它。在 int main() 之前添加以下行,它将成功链接:

A B::a;

关于c++ - 结构中的静态对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26905985/

相关文章:

c++ - 如何理解这个声明中的typedef

c++ - 字符串是 C++ 中的 char 吗?

java - 将对象数组转换为字符串数组是否使用对象的 toString() 方法?

c++ - 这个结构已定义,那么为什么函数认为它没有定义呢?

c - 如何摆脱预期的 'int(*)(const struct dirent *)' 但参数类型为 'int (*)(struct dirent *)' 错误?

c++ - 模板函数错误(使用 Boost.Tuples)

c++ - CMake add_library(<lib> OBJECT <src>) 有环境变量吗?

javascript - Javascript 构造函数中的私有(private)函数不可公开访问

javascript - 查找对象键是否在数组中 javascript

c++ - Arduino 上的结构 : function() 'does not name a type'