c++之类模板成员函数创建时机

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

1.普通的成员函数一开始就可以创建;

2.类模板的成员函数在调用时才创建;

#include<iostream>
using namespace std;

class Person1 {
public:
    void showPerson1() {
        cout << "这里是person1" << endl;
    }
};
class Person2 {
public:
    void showPerson2() {
        cout << "这里是person2" << endl;
    }
};

//不确定obj的类型,所以这里是可以编译成功的
template<class T>
class Person {
public:
    T obj;
    void show1() {
        obj.showPerson1();
    }
    void show2() {
        obj.showPerson2();
    }
};

void test() {
    //这里传入了Person1之后,show1才被创建
    Person<Person1> p;
    p.show1();
    //p.show2();
}

int main() {
    test();
    system("pause");
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/xiximayou/p/12106473.html
今日推荐