首页 > 代码库 > C++之单例模式
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; }
C++之单例模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。