• c++类模板中成员函数创建时机 安静点


    类模板中成员函数创建时机

    类模板中成员函数和普通类中成员函数创建时机是有区别的:

    • 普通类中的成员函数一开始就可以创建
    • 类模板中的成员函数在调用时才创建

    示例:

    class Person1
    {
    public:
        void showPerson1()
        {
            cout << "Person1 show" << endl;
        }
    };
    
    class Person2
    {
    public:
        void showPerson2()
        {
            cout << "Person2 show" << endl;
        }
    };
    
    template<class T>
    class MyClass
    {
    public:
        T obj;
    
        //类模板中的成员函数,并不是一开始就创建的,而是在模板调用时再生成 
        void fun1() { obj.showPerson1(); }
        void fun2() { obj.showPerson2(); }
    
    };
    
    void test01()
    {
        MyClass<Person1> m;
    
        m.fun1(); 
        //编译会出错,提示 "showPerson2": 不是 "Person1" 的成员  
        //说明函数调用才会去创建成员函数,在程序运行前编译阶段就开始调用了
        //类模板中的成员函数并不是一开始就创建的,在调用时才去创建
       // m.fun2(); 
    }
    
    int main() {
    
        test01();
    
        system("pause");
    
        return 0;
    }

    总结:类模板中的成员函数并不是一开始就创建的,在调用时才去创建

  • 相关阅读:
    完成卸载vs2010后再安装
    图片集合,可用作商品列表
    无可奈何花落去
    Uncaught TypeError: Cannot read property 'msie' of undefined
    CodeGenerator.cs
    年月日控件
    SQL GETDATE()日期格式化函数
    股票操作要点
    Rust 错误处理, 包裹错误
    使用 Rust 实现并查集
  • 原文地址:https://www.cnblogs.com/anjingdian/p/16153684.html
Copyright © 2020-2023  润新知