静态成员数据初始化
#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