zoukankan      html  css  js  c++  java
  • C++之单例模式

    test.h

    #include <iostream> #include <string> #include <vector> using namespace std; namespace NS_TEST{ class Animal{ public: std::string Name; int Foot; vector<std::string> FileArray; static int abc; public: Animal(std::string name , int foot){ Name = name; Foot = foot; }; ~Animal(){}; static int getEye(){ return 2; } int getFoot(); string getName(); int *getFootPtr(); static Animal* getObj(); }; }

    test.cpp

    #include "stdafx.h"
    #include "test.h"
    
    
    namespace NS_TEST {
    int Foot = 234;
    int Animal::getFoot(){
        return Foot;
    };
    
    string Animal::getName(){
        return Name;
    }
    
    int *Animal::getFootPtr()
    {
        return &Foot;
    }
    
    Animal *Animal::getObj(){
        /*Animal pig("im pig",4);
        return &pig;*/      //不能这样返回地址变量,因为这个地址变量的作用域只在这个函数里。这样的指针会成为野指针
    
        Animal *pointer=new Animal("im pig",4);  //而new的就不一样了,是直接分配在堆栈里
        return pointer;
    }
    
    int Animal::abc = 234234;
    
    }

    main.cpp

    // ConsoleApplication1.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    #include "test.h"
    #include <iostream>
    #include <string>
    #include <list>
    #include <map>
    #include <vector>
    using namespace std;
    
    namespace NS_MAIN{
    
        
    
    int func(){
        return 3;
    }
    }
    
    void main(){
        
        typedef int a;
        a b,c;
        b=10;
        NS_TEST::Animal bear("im bear",4);
        NS_TEST::Animal* p;
        p = &bear;
    
        int* result = p->getFootPtr();
        cout << "ptr address: "<< result << ", value: " << *result << endl;
    
        NS_TEST::Animal *AnimalObj = NS_TEST::Animal::getObj();
    
    
        int eye = AnimalObj->getFoot();
    
        cout<< eye <<endl;
    
        cout<<p->getName()<<endl;
    
        
    
    
    
    }
  • 相关阅读:
    dayfunctools.weps 定义函数装饰器
    python3之concurrent.futures一个多线程多进程的直接对接模块,python3.2有线程池了
    python的类的super()
    django的admin
    python的单例模式
    git指南
    django创建验证码
    Django model对象接口
    Go语言基础
    迭代器&迭代对象&生成器
  • 原文地址:https://www.cnblogs.com/alazalazalaz/p/4113000.html
Copyright © 2011-2022 走看看