静态成员数据初始化
#include <iostream>
class MyClass {
public:
static int staticVar; // 声明静态变量
static void staticFunction() {
std::cout << "This is a static function." << std::endl;
}
void regularFunction() {
std::cout << "This is a regular function." << std::endl;
}
};
// 初始化静态变量
int MyClass::staticVar = 42;
int main() {
MyClass obj; // 创建对象
// 访问静态变量和静态函数
std::cout << "Static variable: " << MyClass::staticVar << std::endl;
MyClass::staticFunction();
// 访问普通成员函数
obj.regularFunction();
return 0;
}
在上面的例子中,我们声明了一个名为MyClass
的类,其中包含一个静态变量staticVar
和一个静态函数staticFunction()
。我们还定义了一个普通的成员函数regularFunction()
。在main()
函数中,我们创建了一个MyClass
对象,并访问了静态变量和静态函数。由于静态变量是类级别的,因此我们使用类名来访问它。同样地,我们使用类名来调用静态函数。
不妨将例子稍微改复杂一点,增加构造函数、析构函数和拷贝构造函数:
#include <iostream>
class MyClass {
public:
static int staticVar; // 声明静态变量
MyClass(){
std:: cout << "构造函数" << std::endl;
}
MyClass(MyClass &) {
std::cout << "拷贝构造函数" << std::endl;
}
~MyClass() {
std::cout << "析构函数" << std::endl;
}
static void staticFunction() {
std::cout << "This is a static function." << std::endl;
}
void regularFunction() {
std::cout << "This is a regular function." << std::endl;
}
};
// 初始化静态变量
int MyClass::staticVar = 42;
int main() {
MyClass obj; // 创建对象
// 访问静态变量和静态函数
std::cout << "Static variable: " << MyClass::staticVar << std::endl;
MyClass::staticFunction();
// 访问普通成员函数
obj.regularFunction();
std::cout << "---------------------" << std::endl;
MyClass obj1(obj);
return 0;
}
运行结果:
构造函数
Static variable: 42
This is a static function.
This is a regular function.
---------------------
拷贝构造函数
析构函数
析构函数
d:\repos\ConsoleApplication1\x64\Debug\ConsoleApplication1.exe (进程 14796)已退出,代码为 0。
按任意键关闭此窗口. . .
欲一起探讨更多C++知识,可参考:https://blog.csdn.net/u011490194/category_11474590.html?spm=1001.2014.3001.5482