c++ - 在另一个类中使用一个类的静态对象

标签 c++ class static

我正在尝试测试从一个类到另一个类对静态对象的调用。我到这里链接错误 LNK2001: 未解析的外部符号 "public: static class K G::ob1" 我不知道出了什么问题,在互联网上我找不到任何关于静态对象的信息,只有 static with所有其他配置。因此,我请求你的帮助。我是否需要为整个工作创建 K 的对象,或者我是否能够抽象得如此之多以至于我不创建任何对象?

#include <iostream>
using namespace std;

class K
{
    int a;
public:
    K(int x) { a = x; };
    void print() {  cout << " a is: " << a << endl; };
};

class G
{
public:
    static K ob1;
    static void printG()
    {
        ob1.print();
    };
};

int main()
{
    K o1(10);
    G::printG();
    system("pause");
}

最佳答案

您必须定义静态变量。它类似于 C 中的全局变量。

K G::ob1;
int main(){ .... }

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

相关文章:

c++ - c++和opencv中 vector 下标超出范围错误

c++ - QTextBrowser 设置链接,无法使其可点击

c++ - 如何禁止来自内部 Visual Studio 文件的警告

c++ - 将类对象放在 vector 中?

php - 从不同的文件和目录自动加载类和函数

c - 全局变量性能效果(c、c++)

javascript - 在 Typescript 中访问对象类的静态方法?

c++ - 二叉搜索树插入如何使用递归工作?

java - 最终静态字段序列化

c# - 在 C# 中从类声明数组