本文共 2055 字,大约阅读时间需要 6 分钟。
#include#include using namespace std;struct StaticMember{ public: int age = 6; StaticMember() { std::cout << "StaticMember()" << std::endl; } ~StaticMember() { std::cout << "~StaticMember()" << std::endl; }};struct StaticMember2{ StaticMember2() { std::cout << "StaticMember2()" << std::endl; } ~StaticMember2() { std::cout << "~StaticMember2()" << std::endl; }};struct PlainMember{ PlainMember() { std::cout << "PlainMember()" << std::endl; } ~PlainMember() { std::cout << "~PlainMember()" << std::endl; }};struct PlainMember2{ PlainMember2() { std::cout << "PlainMember2()" << std::endl; } ~PlainMember2() { std::cout << "~PlainMember2()" << std::endl; }};struct StaticMember3{ StaticMember3() { std::cout << "StaticMember3()" << std::endl; } ~StaticMember3() { std::cout << "~StaticMember3()" << std::endl; }};class MyClass{ public: static MyClass *GetInstance() { static MyClass a; return &a; } static StaticMember3*getStatic() { static StaticMember3 pl3; return &pl3; } static void print() { getStatic(); std::cout << "/* message */" << std::endl; }private: MyClass(); ~MyClass();public: PlainMember2 plainMember2; PlainMember plainMember; static StaticMember2 staticMember2; static StaticMember staticMember;};MyClass::MyClass(){ std::cout << "MyClass()" << std::endl;}MyClass::~MyClass(){ print(); std::cout << "~MyClass()" << std::endl; std::cout << "~MyClass():~StaticMember(),age:" << staticMember.age << std::endl;}StaticMember MyClass::staticMember;StaticMember2 MyClass::staticMember2;int main(int argc, const char **argv){ // std::cout << MyClass::GetInstance()->staticMember.age ; //<< std::endl; //std::cout << MyClass::getStatic() << std::endl; return 0;}
转载地址:http://yrcii.baihongyu.com/