c++关于模板实例化的一些问题
大家讲道理
大家讲道理 2017-04-17 13:32:48
[C++讨论组]
template<typename T> class Stack{};
void f1(Stack<char> a){}        //a
class Exercise
{
    Stack<double> &rsd;         //b
    Stack<int> i;               //c
};
int main()
{
    using namespace std;
    Stack<char> *sc;            //d
    f1(*sc);                    //e
    int i = sizeof(Stack<string>); //f
}

问:解释哪里发生了什么样的实例,为什么?哪里没有发生实例化,原因。

个人愚见:首先a和d产生Stack<char>这样一个实例,然后f也产生Stack<string>实例
e之前编译器已经知道Stack<char>,所以pass,b和c没有实际使用,pass
所以最终编译器生成的实例化是:char和string的Stack实例。
对吗?这个逻辑??
大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(1)
PHP中文网

你问的是 C++ Primer Exercise 16.27 吧,答案可以参考这里,讨论可以参考这里。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号