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;
}
复制代码

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

posted @   安静点--  阅读(158)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示