所以我最近发现了一些源代码,它使用了我以前从未见过的特定技术(成语?);简而言之; 它没有为所讨论的类使用静态变量,而是在类源文件中使用了局部变量。
我的班级.h
class myclass {
//static int myint;
public:
myclass();
~myclass();
int count();
};
我的类.cpp
#include "myclass.h"
int myint = 0;
myclass::myclass() {
myint++;
}
myclass::~myclass() {
myint--;
}
int myclass::count() {
return myint;
}
主文件
#include "myclass.h"
#include <iostream>
int main() {
myclass aclass;
myclass theclass;
std::cout << theclass.count(); //outputs 2
return 0;
}
我的问题是,为什么有人会采用这种方法而不是使用静态变量?
我的看法是,由于理想情况下该变量只有 myclass 类(私有静态)知道,并且继承根本不重要(在这种情况下),这可能会阻止其他人知道这个变量。但这是我能看到的唯一优势;不确定这是否值得。
同样的问题也适用于私有的(静态/非静态)成员函数;当继承不重要时。
编辑:在阅读之后,我要说这是因为有些人仍然使用 C 编程风格......