繁体   English   中英

"如何在 C++ 中的类定义之外访问静态私有数据成员?"

[英]how static private data members can be accessed outside the class definition in c++?

我正在解决 C++ Primer 5th edition (Exercise 13.15) 中的一个练习题

我无法为其编写代码,所以我查看了 github.com 的解决方案,我发现了这个:

#include <iostream>
using namespace std;

class numbered {
public:
    numbered() : mysn(++sn) {}
    int mysn;
private:
    static int sn;
};

int numbered::sn = 0;

void f(numbered s) {
    cout << s.mysn << endl;
}

int main() {
    numbered a, b = a, c = b;
    f(a);
    f(b);
    f(c);
    numbered d;
    f(d);
}

技术上int numbered::sn = 0;<\/code> 不是“访问”,而是初始化。

类内声明<\/em>的成员可以稍后在类外定义<\/em>(通常在相应的 .cpp 文件中)。 这包括所有成员,甚至那些受保护或私有的成员。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM