注册 登录
编程论坛 C++教室

求助,写了一个单子模式的例子,LINK2001,2019错误,请大神帮看看

l531619792 发布于 2018-10-25 14:44, 1261 次点击
程序代码:

#include<stdio.h>
#include<windows.h>
class Lei
{
public:
   
    static Lei* Getaddr()
    {
        if (m_point == NULL)//只允许创建一个对象
        {
            m_point = new Lei;
            
        }
        return m_point; //通过静态的函数来创建对象,不让别人随随便便调用

    }
private:

    Lei();//把构造函数藏起来

    static Lei* m_point;//定义静态变量


};
Lei* Lei::m_point = NULL;//初始化静态变量


int main(int argc, char* argv[])
{
    Lei* P = Lei::Getaddr();//但每次调用这个函数也要新建个对象啊
    Lei* A = Lei::Getaddr();

    return 0;
}


只有本站会员才能查看附件,请 登录
1 回复
#2
Jonny02012018-10-25 16:01
构造函数没有被定义
程序代码:
#include <iostream>

using namespace std;
class Foo {
    private:
        static Foo *f;
        Foo() = default;
    public:
        static Foo *get() {
            if(!Foo::f) {
                Foo::f = new Foo;
            }
            return Foo::f;
        }
};
Foo *Foo::f = nullptr;
int main(int argc, char *argv[]) {
    auto a {Foo::get()};
    delete a;
}
1